kodepandai / laravel-api-response
Api Response helper for laravel.
Installs: 718
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 1
Open Issues: 2
pkg:composer/kodepandai/laravel-api-response
Requires
- php: ^7.3|^8.0
- laravel/framework: ^7.0|^8.0|^9.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- orchestra/testbench: ^5.0|^6.0|^7.0
- pestphp/pest: ^1.2
- pestphp/pest-plugin-laravel: ^1.2
README
A helper package to return JSON Api Response in structured way.
By default, the structure of the response will look like this:
{
"success": true, // it was successfull or not
"title": "Users", // the title/headline/section
"message": "Active users only", // the message/description/highlight
"data": { // if it was successfull
// profile..
// users..
// products..
// etc..
},
"errors": { // if it was not successfull
// validation errors..
// any other errors..
}
}
Example:
{
"success": true,
"title": "Users",
"message": "Succesfully create a user",
"data": {
"id": 1,
"name": "John Doe",
"address": "4th Semarang Raya",
},
}
Install
$ composer require kodepandai/laravel-api-response:dev-beta
Requirements:
- PHP ^8.1
- Laravel ^10.0
Laravel ^11
After installation, register api response handler in bootstrap/app.php
use KodePandai\ApiResponse\ApiExceptionHandler; return Application::configure(basePath: dirname(__DIR__)) //... ->withExceptions(function (Exceptions $exceptions) { // dont report any api response exception $exceptions->dontReport([ \KodePandai\ApiResponse\Exceptions\ApiException::class, \KodePandai\ApiResponse\Exceptions\ApiValidationException::class, ]); // api response exception handler for /api $exceptions->renderable(function (Throwable $e, Request $request) { if ($request->wantsJson() || $request->is('*api*')) { return ApiExceptionHandler::render($e, $request); } }); });
Laravel ^10
After installation, register api response handler in app/Exceptions/Handler.php
use KodePandai\ApiResponse\ApiExceptionHandler; class Handler extends ExceptionHandler { protected $dontReport = [ \KodePandai\ApiResponse\Exceptions\ApiException::class, \KodePandai\ApiResponse\Exceptions\ApiValidationException::class, ]; public function register() { $this->renderable(function (Throwable $e, Request $request) { if ($request->wantsJson() || $request->is('*api*')) { return ApiExceptionHandler::render($e, $request); } }); } }
The above handler will automatically transform any exception and render as ApiResponse json response.
Config
Publish config file using vendor:publish command
$ php artisan vendor:publish --tag=api-response-config
Usage
TODO
Return Response
TODO
Throw Exception
TODO
Overriding response structure
TODO
Develop
- To test run
composer test.