PHPackages                             ibrahimhalilucan/response-builder - 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. ibrahimhalilucan/response-builder

ActiveLibrary[API Development](/categories/api)

ibrahimhalilucan/response-builder
=================================

Laravel API Response Builder

v1.2.2(8mo ago)10461[1 issues](https://github.com/ibrahimhalilucan/response-builder/issues)MITPHPPHP &gt;=7.1

Since Dec 6Pushed 8mo ago1 watchersCompare

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

READMEChangelog (5)Dependencies (2)Versions (6)Used By (0)

[![REST API Response Builder for Laravel](assets/img/package.png)](assets/img/package.png)

Response Builder for Laravel API
--------------------------------

[](#response-builder-for-laravel-api)

ResponseBuilder is Laravel's helper designed to build nice, normalized and easy to consume REST API JSON responses.

Requirement
-----------

[](#requirement)

> Laravel &gt;= 5.6
>
> Php &gt;= 7.1

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

[](#installation)

You can install the package via composer:

```
$ composer require ibrahimhalilucan/response-builder
```

### Exposed Methods

[](#exposed-methods)

#### success

[](#success)

- Parameter `null|mixed $data`
- Return `return \IbrahimHalilUcan\ResponseBuilder\ResponseBuilder`

#### error

[](#error)

- Parameter `null|mixed $data`
- Return `return \IbrahimHalilUcan\ResponseBuilder\ResponseBuilder`

#### message

[](#message)

- Parameter `string $message`
- Return `@return \IbrahimHalilUcan\ResponseBuilder\ResponseBuilder`

#### httpHeaders

[](#httpheaders)

- Parameter `array $httpHeaders`
- Return `@return \IbrahimHalilUcan\ResponseBuilder\ResponseBuilder`

#### httpStatusCode

[](#httpstatuscode)

- Parameter `int $httpStatusCode`
- Return `@return \IbrahimHalilUcan\ResponseBuilder\ResponseBuilder`

#### append

[](#append)

- Parameter `array $data`
- Return `@return \IbrahimHalilUcan\ResponseBuilder\ResponseBuilder`

#### build

[](#build)

- Return `@return \Illuminate\Http\JsonResponse`

Usage
-----

[](#usage)

### Example 1

[](#example-1)

```
use IbrahimHalilUcan\ResponseBuilder\Facades\ResponseBuilder;

$items = [1, 2, 3, 4];
return ResponseBuilder::success($items)->build();
```

See response below:

```
{
    "meta": {
        "status": true,
        "code": 200,
        "message": "OK"
    },
    "data": [1,2,3,4,5]
}

```

### Example 2

[](#example-2)

```
use IbrahimHalilUcan\ResponseBuilder\Facades\ResponseBuilder;
use Symfony\Component\HttpFoundation\Response;

$items = [1, 2, 3, 4];
return ResponseBuilder::success($items)
    ->message('Result Message')
    ->append(['custom-key' => 'value'])
    ->httpStatusCode(Response::HTTP_OK)
    ->build();
```

See response below:

```
{
    "meta": {
        "status": true,
        "code": 200,
        "message": "Result Message"
    },
    "data": [1,2,3,4,5],
    "custom-key": "value"
}

```

### Example 3

[](#example-3)

```
use IbrahimHalilUcan\ResponseBuilder\Facades\ResponseBuilder;

$items = Blog::where('status', 1)->get();
return ResponseBuilder::success($items, BlogResource::class)
    ->message('Active Blog Lists')
    ->append(['custom-key' => 'value'])
    ->build();
```

See response below:

```
{
    "meta": {
        "status": true,
        "code": 200,
        "message": "Active Blog Lists"
    },
    "data": [
        {
            "id": 1,
            "title": "Lorem Ipsum 1",
            "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "published_at": "2022-12-03 18:09:21",
            "created_at": "2022-12-03 18:09:21"
        },
        {
            "id": 2,
            "title": "Lorem Ipsum 2",
            "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "published_at": "2022-12-03 18:19:35",
            "created_at": "2022-12-03 18:19:35"
        },
    ],
    "custom-key": "value"
}

```

### Example 4

[](#example-4)

```
use IbrahimHalilUcan\ResponseBuilder\Facades\ResponseBuilder;

$items = Blog::paginate();
return ResponseBuilder::success($items, BlogResource::class)
    ->message('Blog Lists')
    ->build();
```

See response below:

```
{
    "meta": {
        "status": true,
        "code": 200,
        "message": "Blog Lists"
    },
    "data": [
        {
            "id": 1,
            "title": "Lorem Ipsum 1",
            "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "published_at": "2022-12-03 18:09:21",
            ""created_at"": "2022-12-03 18:09:21"
        },
        {
            "id": 2,
            "title": "Lorem Ipsum 2",
            "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "published_at": "2022-12-03 18:19:35",
            "created_at": "2022-12-03 18:19:35"
        },
    ],
    "pagination": {
        "total": 60,
        "per_page": 10,
        "current_page": 1,
        "last_page": 6,
        "count": 10,
        "from": 1,
        "to":10,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "your_app_url?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": "your_app_url?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "your_app_url?page=3",
                "label": "3",
                "active": false
            },
            {
                "url": "your_app_url?page=4",
                "label": "4",
                "active": false
            },
            {
                "url": null,
                "label": "...",
                "active": false
            },
            {
                "url": "your_app_url?page=2",
                "label": "Next &raquo;",
                "active": false
            }
        ]
    }
}

```

### Example 5

[](#example-5)

```
use IbrahimHalilUcan\ResponseBuilder\Facades\ResponseBuilder;

$items = [
    'device_id'     => "26728172-d050-4126-8ee2-4bfe8201565c",
    'secret'        => "0184cd97-7351-7121-91cb-5a818f3eb4b0",
    'platform'      => "iOS",
    'version'       => "1.0",
    'language_code' => "en",
    'country_code'  => "TR",
    'time_zone'     => "Europe/Istanbul",
];

$validator = Validator::make($items, [
    'device_id' => 'required|size:12', // device length should be 12 chars
    'secret'    => 'required',
    'platform'  => ['required', Rule::in('Android', 'iOS', 'Huawei')],
]);

return ResponseBuilder::error($validator->errors())->build();
```

See response below:

```
{
    "meta": {
        "status": false,
        "code": 422,
        "message": "Error"
   },
   "errors": {
        "device_id": ["The device id must be 12 characters."]
   }
}

```

### Example 6

[](#example-6)

```
use  IbrahimHalilUcan\Traits\FailedValidationTrait;

class BlogRequest extends Request {

    use FailedValidationTrait;
    .
    .

}
```

See response below:

```
{
    "meta": {
        "status": false,
        "code": 422,
        "message": "Error"
   },
   "errors": {
        "device_id": ["The device id must be 12 characters."]
   }
}

```

### Example 7

[](#example-7)

```
use IbrahimHalilUcan\ResponseBuilder\Facades\ResponseBuilder;

return ResponseBuilder::noContent()->build();
```

See response below:

```
{
    "meta": {
        "status": true,
        "code": 204,
        "message": "OK"
    },
    "data": null
}

```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Contributing
------------

[](#contributing)

Any ideas are welcome. Feel free to submit any issues or pull requests. Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [İbrahim Halil Uçan](https://github.com/ibrahimhalilucan)

License
-------

[](#license)

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

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance57

Moderate activity, may be stable

Popularity16

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95.7% 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 ~248 days

Total

5

Last Release

259d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0105acdfb20caf5d8d805c53f21812adf3ff6f52c000620a8e5ae8147afe8a80?d=identicon)[ibrahimhalilucan](/maintainers/ibrahimhalilucan)

---

Top Contributors

[![ibrahimhalilucan](https://avatars.githubusercontent.com/u/60623423?v=4)](https://github.com/ibrahimhalilucan "ibrahimhalilucan (22 commits)")[![haydar](https://avatars.githubusercontent.com/u/6452942?v=4)](https://github.com/haydar "haydar (1 commits)")

---

Tags

apijson-apilaravelresponserest-apirestful-apiresponsephpapilaravelpackagelibraryREST APIRESTful APIJSON-API

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ibrahimhalilucan-response-builder/health.svg)

```
[![Health](https://phpackages.com/badges/ibrahimhalilucan-response-builder/health.svg)](https://phpackages.com/packages/ibrahimhalilucan-response-builder)
```

###  Alternatives

[obiefy/api-response

Simple Laravel package to return Json responses.

17324.6k](/packages/obiefy-api-response)[joisarjignesh/bigbluebutton

BigBlueButton Server API Library for Laravel

162145.5k1](/packages/joisarjignesh-bigbluebutton)[rubix/server

Deploy your Rubix ML models to production with scalable stand-alone inference servers.

632.3k](/packages/rubix-server)[vinelab/api-manager

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

392.1k](/packages/vinelab-api-manager)[dystcz/lunar-api

Dystore API layer for Lunar e-commerce package

411.1k3](/packages/dystcz-lunar-api)

PHPackages © 2026

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