igorsgm/laravel-api-responses

📮• A Laravel package for building API responses in a normalized and easy to consume way.


Keywords
api, response, builder, laravel, responder, lumen
License
MIT

Documentation

📮 Laravel API Responses

A Laravel package for building API responses in a normalized and easy to consume way.

Latest Version on Packagist Build Status Quality Score Total Downloads


API usage sample

Features

  • ApiResponse Middleware to set the Accept: application/json header to your api routes and also throw exceptions as JSON.
  • A list of macros that extend the Laravel's Response class, that can be easily used like response()->success(...)
  • _ide_helper_macros.php file generated to improve your IDE's code completion

1️⃣ Installation

  • You can install the package via composer:
composer require igorsgm/laravel-api-responses
  • Publishing the config and IDE Helper files:
php artisan vendor:publish --provider="Igorsgm\LaravelApiResponses\LaravelApiResponsesServiceProvider"

2️⃣ Usage

First, register the ApiResponse at the top of your api middleware group, inside app/Http/Kernel.php.

class Kernel extends HttpKernel
{
    protected $middlewareGroups = [
        // ...
        'api' => [
            \Igorsgm\LaravelApiResponses\Http\Middleware\ApiResponse::class,
            // ...
        ],
    ];
    
    // ...
}

Now simply start using one of the available response functions to always return a normalized API data inside your controllers.

response()->success($data, $message) // ($data = [], $message = '', $status = 200, $headers = [])
response()->successMessage($message) // ($message = '', $status = 200, $headers = [])
response()->error($errors) // ($errors = [], $message = '', $status = 500, $headers = [])
response()->errorMessage($message) // ($message = '', $status = 500, $headers = [])
response()->exceptionError($exception) // ($exception, $message = '', $status = 0, $headers = [])

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email igor.sgm@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.