dotcubed.io / laravel-api-response
Laravel API Response
Package info
bitbucket.org/dotcubed/laravel-api-response
pkg:composer/dotcubed.io/laravel-api-response
0.2
2024-04-27 22:05 UTC
Requires
- php: >=8.3
- laravel/framework: >=11.0
Requires (Dev)
- laravel/pint: ^1.15
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
What is this repository for?
This repo formats the response for API endpoints displaying information that is crucial for debugging and day-to-day operations.
How do I get set up?
Install the package and both middleware and response facade will be automatically discovered.
Behind the scenes
When a request is triggered, the following happens:
- a middleware injects a requestId in the header so that all responses will have it available
- the response facade kicks in and checks if the request expects a json response or is ajax which defines an API endpoint
- at this point the response will then format all the data that is needs to be outputted
Usage
There are 5 methods available in the package that will format a Response. One is the main method and the other 4 are wrappers for simpler calls. The following methods are available:
| method | parameters | description |
|---|---|---|
| getJsonResponse | requestStatus : success, failure, warning message : an optional string message data : data to be returned statusCode : either the same as used in the header or an internal/alteranate requestId : same used in the header errorData : error trace array errorBag : error list as piped form a Form Request | Fully-controlled response |
| success | data : data to be returned message : a string message responseCode : defaults 200 | simple version |
| successMessage | message : a string message | message-only response with an HTTP 200 code |
| failure | data : data to be returned message : a string message responseCode : defaults to 200 | |
| failureMessage | message : a string message | message-only failure response with a HTTP 400 code |
Examples
Code
$data = $model->get(1);
return Response::success($data);
Response
{
"status": "success",
"statusCode": 200,
"data": {
"user": {
"name": "John Smith"
}
},
"requestId": "662d5de536b97",
"timestamp": 1714249189.23148
}