PHPackages                             mesak/laravel-api-response - 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. mesak/laravel-api-response

ActiveLibrary[API Development](/categories/api)

mesak/laravel-api-response
==========================

build a Laravel api response package

v1.3.2(2y ago)245MITPHPPHP ^8.0

Since Dec 31Pushed 2y ago1 watchersCompare

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

READMEChangelogDependenciesVersions (17)Used By (0)

Laravel Api Response
====================

[](#laravel-api-response)

Laravel Api Response

Control the api format with a unified callback method

installation
============

[](#installation)

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

Or you could directly reference it into your `composer.json` file as a dependency

```
{
  "require": {
    "mesak/laravel-api-response": "^1.0.0"
  }
}
```

Controller
----------

[](#controller)

change your api controller, to extend `Mesak\LaravelApiResponse\Http\Controllers\Controller`

```
namespace App\Http\Controllers;

use Mesak\LaravelApiResponse\Http\Controllers\ApiController as BaseController;

class MainController extends BaseController
{

}
```

then you can return your all response

Example
=======

[](#example)

Use Pagination
--------------

[](#use-pagination)

```
class MainController extends BaseController
{

    function index(Request $request)
    {
      return \App\Models\User::paginate(15);
    }
}
```

Use Resources
-------------

[](#use-resources)

```
class MainController extends BaseController
{

    function index(Request $request)
    {
      $users = \App\Models\User::paginate(15);
      return \App\Http\Resources\User::collection($users);
    }
}
```

Use Exception
-------------

[](#use-exception)

```
class MainController extends BaseController
{

  function index(Request $request)
  {
    $users = \App\Models\User::paginate(15);
    if( $users->isEmpty() )
    {
      throw new \Exception('No users found');
    }
    return \App\Http\Resources\User::collection($users);
  }
}
```

Use Extends Exception
---------------------

[](#use-extends-exception)

```
class MainController extends BaseController
{
  function index(Request $request)
  {
    $users = \App\Models\User::paginate(15);
    if( $users->isEmpty() )
    {
      throw new \Mesak\LaravelApiResponse\Exceptions\BaseException('No users found' ); //statusCode 500
    }
    return \App\Http\Resources\User::collection($users);
  }
}
```

Use Custom Exception
--------------------

[](#use-custom-exception)

create your custom exception class `app/Exceptions/BadRequestException.php`

```
namespace App\Exceptions;

class BadRequestException extends \Mesak\LaravelApiResponse\Exceptions\BaseException
{
  protected $errorCode = 400;
  protected $statusCode = 400;
  public function __construct($message = 'Bad Request')
  {
    parent::__construct($message);
  }
}
```

then you can use it in your controller

```
use App\Exceptions\BadRequestException;
class MainController extends BaseController
{
  function index(Request $request)
  {
    $users = \App\Models\User::paginate(15);
    if( $users->isEmpty() )
    {
      throw new BadRequestException(); //statusCode 400
    }
    return \App\Http\Resources\User::collection($users);
  }
}
```

without ApiController
---------------------

[](#without-apicontroller)

if you don't want to extend `Mesak\LaravelApiResponse\Http\Controllers\ApiController` you can use

`response()->success($data,$statusCode);`

`response()->error($data,$statusCode);`

```
class MainController extends \App\Http\Controllers\Controller
{
  function index(Request $request)
  {
    $users = \App\Models\User::paginate(15);
    if( $users->isEmpty() )
    {
      return response()->error('no data',400);
    }
    $result = \App\Http\Resources\User::collection($users);
    return response()->success($result);
  }
}
```

custom config
-------------

[](#custom-config)

You can customise your api schema content with a custom config.php.

```
php artisan vendor:publish --tag=api-response --force
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~17 days

Recently: every ~26 days

Total

16

Last Release

967d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a893207a6c15016970b6a7974c055bd15ccaee8d69c83844a76d9b52c56e6548?d=identicon)[mesak](/maintainers/mesak)

---

Top Contributors

[![mesak](https://avatars.githubusercontent.com/u/233845?v=4)](https://github.com/mesak "mesak (21 commits)")

---

Tags

apiapi-responsejsonjson-responselaravellaravel-packagelaravel-responsephprest-apiresponseapilaravel

### Embed Badge

![Health badge](/badges/mesak-laravel-api-response/health.svg)

```
[![Health](https://phpackages.com/badges/mesak-laravel-api-response/health.svg)](https://phpackages.com/packages/mesak-laravel-api-response)
```

###  Alternatives

[vinelab/api-manager

Laravel API Manager Package - beatify and unify your responses with the least effort possible.

392.1k](/packages/vinelab-api-manager)[nilportugues/laravel5-json-api-dingo

Laravel5 JSONAPI and Dingo together to build APIs fast

311.5k](/packages/nilportugues-laravel5-json-api-dingo)[nicklaw5/larapi

A simple Laravel 5 class for handling json api responses.

111.5k](/packages/nicklaw5-larapi)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
