ApiResponse

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.