willywes / apiresponse
Class to generate a standard structure for api json responses
Installs: 1 765
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
pkg:composer/willywes/apiresponse
Requires
- illuminate/support: ~5|~6|~7|~8|~9|~10
Requires (Dev)
- orchestra/testbench: ~5|~6
- phpunit/phpunit: ~9.0
README
Class to generate a standard structure for api json responses.
Installation
Via Composer
$ composer require willywes/apiresponse
Usage
Imports
use Willywes\ApiResponse\ApiResponse;
Functions of Control (HTTP/200 OK)
Default functions that always return a http 200 code, but have a control state.
Params
| Param | Description |
|---|---|
| data | array of data for response (allow null) |
| message | custom message to response (optional) |
| title | custom title to response (optional) |
Functions
| Function | Description |
|---|---|
| JsonSuccess | Response status "success" with HTTP 200 |
| JsonError | Response status "error" with HTTP 200 |
| JsonWarning | Response status "warning" with HTTP 200 |
| JsonInfo | Response status "info" with HTTP 200 |
| JsonFieldValidation | Response status "field_validation" with HTTP 200 |
| JsonFieldValidationError | Response status "field_validation" with HTTP 422 |
Examples
Success example
//Execution in php return ApiResponse::JsonSuccess([ 'user' => User::first(), 'roles' => Role::all(), ]);
//Response { "status":"success", "title":"Operación Exitosa.", "message": null, "data":{ "user":{ "id":1, "full_name":"John Smith", "email":"jsmith@test.cl", "role_id":1 }, "roles":[ { "id":1, "name":"God Admin" }, { "id":2, "name":"Administrator" } ] } }
//HTTP Response Status Code: 200 OK
Error example
//Execution in php return ApiResponse::JsonError(null, 'something has gone wrong!', 'oops');
//Response { "status":"error", "title":"oops", "message":"something has gone wrong!", "data": null }
//HTTP Response Status Code: 200 OK
Functions with specific HTTP Code
Default functions that returns a specific http code, but in the same way the body responds
Params
| Param | Description |
|---|---|
| data | array of data for response (allow null) |
| message | custom message to response (optional) |
Functions Code HTTP 1XX
| Http Code | Function Name | Description |
|---|---|---|
| 100 | Http100 or Continue | Response status "info" with HTTP 100 |
| 101 | Http101 or SwitchingProtocols | Response status "info" with HTTP 101 |
| 102 | Http102 or Processing | Response status "info" with HTTP 102 |
| 103 | Http103 or EarlyHints | Response status "info" with HTTP 103 |
Functions Code HTTP 2XX
| Http Code | Function Name | Description |
|---|---|---|
| 200 | Http200 or Ok | Response status "success" with HTTP 200 |
| 201 | Http201 or Created | Response status "success" with HTTP 201 |
| 202 | Http202 or Accepted | Response status "success" with HTTP 202 |
| 203 | Http203 or NonAuthoritativeInformation | Response status "success" with HTTP 203 |
| 204 | Http204 or NoContent | Response status "success" with HTTP 204 |
| 205 | Http205 or ResetContent | Response status "success" with HTTP 205 |
| 206 | Http206 or PartialContent | Response status "success" with HTTP 206 |
Functions Code HTTP 3XX
| Http Code | Function Name | Description |
|---|---|---|
| 300 | Http300 or MultipleChoices | Response status "redirection" with HTTP 300 |
| 301 | Http301 or MovedPermanently | Response status "redirection" with HTTP 301 |
| 302 | Http302 or MovedTemporarily | Response status "redirection" with HTTP 302 |
| 303 | Http303 or SeeOther | Response status "redirection" with HTTP 303 |
| 304 | Http304 or NotModified | Response status "redirection" with HTTP 304 |
| 305 | Http305 or UseProxy | Response status "redirection" with HTTP 305 |
| 307 | Http307 or TemporaryRedirect | Response status "redirection" with HTTP 307 |
| 308 | Http308 or PermanentRedirect | Response status "redirection" with HTTP 308 |
Functions Code HTTP 4XX
| Http Code | Function Name | Description |
|---|---|---|
| 400 | Http400 or BadRequest | Response status "error" with HTTP 400 |
| 401 | Http401 or Unauthorized | Response status "error" with HTTP 401 |
| 402 | Http402 or PaymentRequired | Response status "error" with HTTP 402 |
| 403 | Http403 or Forbidden | Response status "error" with HTTP 403 |
| 404 | Http404 or NotFound | Response status "error" with HTTP 404 |
| 405 | Http405 or MethodNotAllowed | Response status "error" with HTTP 405 |
| 406 | Http406 or NotAcceptable | Response status "error" with HTTP 406 |
| 407 | Http407 or ProxyAuthenticationRequired | Response status "error" with HTTP 407 |
| 408 | Http408 or RequestTimeout | Response status "error" with HTTP 408 |
| 409 | Http409 or Conflict | Response status "error" with HTTP 409 |
| 410 | Http410 or Gone | Response status "error" with HTTP 410 |
| 411 | Http411 or LengthRequired | Response status "error" with HTTP 411 |
| 412 | Http412 or PreconditionFailed | Response status "error" with HTTP 412 |
| 413 | Http413 or RequestEntityTooLarge | Response status "error" with HTTP 413 |
| 414 | Http414 or RequestUriTooLarge | Response status "error" with HTTP 414 |
| 415 | Http415 or UnsupportedMediaType | Response status "error" with HTTP 415 |
| 416 | Http416 or RequestedRangeNotSatisfiable | Response status "error" with HTTP 416 |
| 417 | Http417 or ExpectationFailed | Response status "error" with HTTP 417 |
| 421 | Http421 or MissDirectedRequest | Response status "error" with HTTP 421 |
| 422 | Http422 or UnprocessableEntity | Response status "error" with HTTP 422 |
| 423 | Http423 or Locked | Response status "error" with HTTP 423 |
| 424 | Http424 or FailedDependency | Response status "error" with HTTP 424 |
| 426 | Http426 or UpgradeRequired | Response status "error" with HTTP 426 |
| 428 | Http428 or PreconditionRequired | Response status "error" with HTTP 428 |
| 429 | Http429 or TooManyRequests | Response status "error" with HTTP 429 |
| 431 | Http431 or RequestHeaderFieldsTooLarge | Response status "error" with HTTP 431 |
| 451 | Http451 or UnavailableForLegalReasons | Response status "error" with HTTP 451 |
Functions Code HTTP 5XX
| Http Code | Function Name | Description |
|---|---|---|
| 500 | Http500 or InternalServerError | Response status "error" with HTTP 500 |
| 501 | Http501 or NotImplemented | Response status "error" with HTTP 501 |
| 502 | Http502 or BadGateway | Response status "error" with HTTP 502 |
| 503 | Http503 or ServiceUnavailable | Response status "error" with HTTP 503 |
| 504 | Http504 or GatewayTimeout | Response status "error" with HTTP 504 |
| 505 | Http505 or HTTPVersionNotSupported | Response status "error" with HTTP 505 |
| 506 | Http506 or VariantAlsoNegotiates | Response status "error" with HTTP 506 |
| 507 | Http507 or InsufficientStorage | Response status "error" with HTTP 507 |
| 508 | Http508 or LoopDetected | Response status "error" with HTTP 508 |
| 510 | Http510 or NotExtended | Response status "error" with HTTP 510 |
| 511 | Http511 or NetworkAuthenticationRequired | Response status "error" with HTTP 511 |
Examples
404 Error example
//Execution in php return ApiResponse::NotFound(null, 'object not found!'); // or //Execution in php without params return ApiResponse::NotFound(); // or return ApiResponse::Http404();
//Response { "status": "error", "message": "Not Found", "data": null }
//HTTP Response Status Code: 404 Not Found
401 Error example
//Execution in php return ApiResponse::Unauthorized(); // or return ApiResponse::Http401();
//Response { "status": "error", "message": "Unauthorized", "data": null }
//HTTP Response Status Code: 401 Unauthorized
403 Error example
//Execution in php return ApiResponse::Forbidden(); // or return ApiResponse::Http403();
//Response { "status": "error", "message": "Forbidden", "data": null }
//HTTP Response Status Code: 403 Forbidden
Credits
License
license. Please see the license file for more information.