2017 © Pedro Peláez
 

library laravel-easy-jsonapi

Follow Extended Fractal package for smarter usage for API response

image

ngoctp/laravel-easy-jsonapi

Follow Extended Fractal package for smarter usage for API response

  • Thursday, May 31, 2018
  • by ngoctp
  • Repository
  • 1 Watchers
  • 1 Stars
  • 1,219 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 47 % Grown

The README.md

Laravel Easy JsonApi

This is an extended library for responding common API easily., (*1)

This package supports Laravel 5.0 and newer versions., (*2)

You can also use this package with Lumen., (*3)

Installation

Import package using composer:, (*4)

composer require ngoctp/laravel-easy-jsonapi

Usages

New options parameter for transformer

With new options parameter in constructor, you can respond more fields optionally in each action, (*5)

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

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

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

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

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

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 :), (*6)

The Versions

31/05 2018

dev-master

9999999-dev

Follow Extended Fractal package for smarter usage for API response

  Sources   Download

MIT

The Requires

 

by Ngoc P. Tran

31/05 2018

v1.0.4

1.0.4.0

Follow Extended Fractal package for smarter usage for API response

  Sources   Download

MIT

The Requires

 

by Ngoc P. Tran

09/04 2018

v1.0.3

1.0.3.0

Follow Extended Fractal package for smarter usage for API response

  Sources   Download

MIT

The Requires

 

by Ngoc P. Tran

29/01 2018

v1.0.2

1.0.2.0

Follow Extended Fractal package for smarter usage for API response

  Sources   Download

MIT

The Requires

 

by Ngoc P. Tran

14/12 2017

v1.0.1

1.0.1.0

Follow Extended Fractal package for smarter usage for API response

  Sources   Download

MIT

The Requires

 

by Ngoc P. Tran

30/10 2017

v1.0.0

1.0.0.0

Follow Extended Fractal package for smarter usage for API response

  Sources   Download

MIT

The Requires

 

by Ngoc P. Tran