PHPackages                             ngoctp/laravel-easy-jsonapi - 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. ngoctp/laravel-easy-jsonapi

ActiveLibrary[API Development](/categories/api)

ngoctp/laravel-easy-jsonapi
===========================

Follow Extended Fractal package for smarter usage for API response

v1.0.5(7y ago)12.4kMITPHP

Since Oct 30Pushed 7y ago1 watchersCompare

[ Source](https://github.com/ngoctp/laravel-easy-jsonapi)[ Packagist](https://packagist.org/packages/ngoctp/laravel-easy-jsonapi)[ RSS](/packages/ngoctp-laravel-easy-jsonapi/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (6)Dependencies (1)Versions (7)Used By (0)

Laravel Easy JsonApi
====================

[](#laravel-easy-jsonapi)

This is an extended library for responding common API easily.

This package supports Laravel 5.0 and newer versions.

You can also use this package with Lumen.

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

[](#installation)

Import package using composer:

```
composer require ngoctp/laravel-easy-jsonapi
```

### Usages

[](#usages)

#### New options parameter for transformer

[](#new-options-parameter-for-transformer)

With new `options` parameter in constructor, you can respond more fields optionally in each action

```
class UserTransformer extends ExtendedTransformerAbstract
{

    protected $name = 'user';

    protected $availableIncludes = [
        'roles',
    ];

    /**
     * @param User $user
     * @return array
     */
    public function transform($user)
    {
        $data = [
            'id' => $user->id,
            'name' => $user->name,
        ];

        if (array_get($this->options, 'respond_birthday')) {
            $data['birthday'] = $user->birthday;
        }

        return $data;
    }

    public function includeRoles($user)
    {
        return new Collection($user->roles, new RoleTransformer(array_get($this->options, 'roles')), 'role');
    }
}

// Controller
class UserController extends Controller {
    public function index($request) {
        $users = \App\Models\User::get();

        return eja_data($users, new \App\Transformers\UserTransformer(
            [
                'respond_birthday' => true,
                'roles' => [
                    'respond_name' => false,
                ]
            ]
        ));
    }
}
```

#### Respond success message

[](#respond-success-message)

```
class UserController extends Controller {
    public function store($request) {
        // ...

        return eja_success('Created user successfully');
    }
}
```

#### Respond error message

[](#respond-error-message)

```
class UserController extends Controller {
    public function update($request) {
        $validUsername = false;

        if (!$validUsername) {
            return eja_error('Username is not valid');
        }

        return eja_success('Updated user successfully');
    }
}
```

#### Respond normal form error message

[](#respond-normal-form-error-message)

```
class UserController extends Controller {
    public function update($request) {
        $validator = Validator::make($inputs, $rules);

        if ($validator->fails()) {
            return eja_form_error($validator);
        }

        return eja_success('Updated user successfully');
    }
}
```

#### Respond data

[](#respond-data)

```
class UserController extends Controller {
    public function index($request) {
        $users = \App\Models\User::get();
        //$users = \App\Models\User::paginate(10);

        return eja_data($users, new \App\Transformers\UserTransformer());
    }
}
```

Happy coding :)

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity67

Established project with proven stability

 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 ~60 days

Total

6

Last Release

2815d ago

### Community

Maintainers

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

---

Top Contributors

[![ngoctp](https://avatars.githubusercontent.com/u/4251459?v=4)](https://github.com/ngoctp "ngoctp (11 commits)")

### Embed Badge

![Health badge](/badges/ngoctp-laravel-easy-jsonapi/health.svg)

```
[![Health](https://phpackages.com/badges/ngoctp-laravel-easy-jsonapi/health.svg)](https://phpackages.com/packages/ngoctp-laravel-easy-jsonapi)
```

###  Alternatives

[spatie/laravel-fractal

An easy to use Fractal integration for Laravel applications

1.9k15.1M99](/packages/spatie-laravel-fractal)[spatie/fractalistic

A developer friendly wrapper around Fractal

38715.3M8](/packages/spatie-fractalistic)[flugger/laravel-responder

A Laravel Fractal package for building API responses, giving you the power of Fractal and the elegancy of Laravel.

8901.5M5](/packages/flugger-laravel-responder)[yajra/laravel-datatables-fractal

Laravel DataTables Fractal Plugin.

966.9M29](/packages/yajra-laravel-datatables-fractal)[ellipsesynergie/api-response

Simple package to handle response properly in your API

3751.4M20](/packages/ellipsesynergie-api-response)[craftcms/element-api

Create a JSON API for your elements in Craft

503701.3k8](/packages/craftcms-element-api)

PHPackages © 2026

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