Laravel JSON response trait. This trait makes it easy for any controller to return a JSON response with the appropriate HTTP status code.
Via composer:
composer require imdhemy/jsonable
All that you need is to use
the Jsonable
trait inside your controller.
Example:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Imdhemy\Jsonable\Jsonable;
class CountryController extends Controller
{
use Jsonable;
public function index()
{
$data = \App\Country::get();
return $this->ok($data, 'countries');
}
}
The previous code will return a JSON response like the following:
{
"countries": [
{
"name": "Egypt",
"capital": "Cairo",
},
...
]
}
The parent key is optional, you can ommit it:
$data = \App\Country::get();
return $this->ok($data);
The response will be like the following:
[
{
"name": "Egypt",
"capital": "Cairo",
},
...
]
Method | Status code | Description |
---|---|---|
ok | 200 | Successful get, patch (return a JSON object) |
created | 201 | Successful post (return a JSON object) |
noContent | 204 | Successful delete |
Method | Status code | Description |
---|---|---|
unauthorized | 401 | Not authenticated |
invalid | 403 | Authenticated, but no permissions |
notFound | 404 | Not Found |
invalid | 422 | Validation |
Method | Status code | Description |
---|---|---|
accepted | 202 | Successful post, delete, path - async |
badRequest | 400 | The request could not be understood by the server due to malformed syntax |
paymentRequired | 402 | Payment required |