PHPackages                             zerkxubas/api-response-laravel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. zerkxubas/api-response-laravel

ActiveLibrary[API Development](/categories/api)

zerkxubas/api-response-laravel
==============================

This package can be usefull to structure our api response in laravel api projects, its simple and easy to use.

v1.0.1(2y ago)011MITPHPPHP ^8.2

Since Jun 26Pushed 2y ago1 watchersCompare

[ Source](https://github.com/zerkxubas/api-response-laravel)[ Packagist](https://packagist.org/packages/zerkxubas/api-response-laravel)[ RSS](/packages/zerkxubas-api-response-laravel/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (1)Dependencies (2)Versions (3)Used By (0)

API Response Laravel Package
============================

[](#api-response-laravel-package)

This package provides a structured way to handle API responses in Laravel applications. It includes predefined status codes and a middleware to enforce JSON requests.

**NOTE** suitable for `Laravel v11+`

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require zerkxubas/api-response-laravel
```

Publish Configuration
---------------------

[](#publish-configuration)

To publish the configuration file, run the following command:

```
php artisan vendor:publish --tag="apiresponse"
```

This will create a config/apiresponse.php file in your project where you can customize the package settings.

Usages
------

[](#usages)

### Status Codes

[](#status-codes)

The package includes a set of predefined status codes which can be accessed as constants:

```
use Zerkxubas\ApiResponseLaravel\StatusCode;

$status = StatusCode::OK;
```

### Middleware

[](#middleware)

The package provides a middleware to ensure that all API requests expect a JSON response. To use register it in your bootstrap/app.php file.

```
// use this namespace.
use Zerkxubas\ApiResponseLaravel\Http\Middleware\RequiresJsonMiddleware;

// Add this line inside ->withMiddleware(){}
$middleware->api()->append(RequiresJsonMiddleware::class);
```

Using ApiResponseController
---------------------------

[](#using-apiresponsecontroller)

To use the `ApiResponseController` provided by this package, you can extend it in your own controllers. This will allow you to use the standardized API response methods.

```
use Zerkxubas\ApiResponseLaravel\Http\Controllers\ApiResponseController;

class MyCustomController extends ApiResponseController
{
    // send response
    return $this->sendResponse($data, $message, $code)

    // send errorResponse
    return $this->sendError($error, $errorMessages, $code);
}
```

More Example **SendResponse**

```
// Example of sending a success response
$data = ['key' => 'value'];
return $this->sendResponse('Data retrieved successfully.', $data, 200);

// Or
return $this->sendResponse('Data retrieved successfully.', $data, StatusCode::OK);
```

More Example **SendErrorResponse**

```
// Example of sending an error response
$errorMessages = [
    'error_detail' => 'Customized errors in bulk.'
];
return $this->sendError('File not found.', $errorMessages, 404);

// Or
return $this->sendError('File not found.', $errorMessages, StatusCode::NOT_FOUND);
```

Currently Supported Status Codes &amp; Usages
---------------------------------------------

[](#currently-supported-status-codes--usages)

- 200 `StatusCode::OK`
- 201 `StatusCode::CREATED`
- 202 `StatusCode::ACCEPTED`
- 400 `StatusCode::BAD_REQUEST`
- 401 `StatusCode::UNAUTHORIZED`
- 403 `StatusCode::FORBIDDEN`
- 404 `StatusCode::NOT_FOUND`
- 500 `StatusCode::SERVER_ERROR`

Customizing the API Response Implementation
-------------------------------------------

[](#customizing-the-api-response-implementation)

You can customize the API response structure by specifying your own implementation of the `ApiResponseInterface` in the `config/apiresponse.php` configuration file.

**At First**, create your custom class implementing `ApiResponseInterface`:

```
