LaravelPackages.net
Acme Inc.
Toggle sidebar
anxis/laravel-json-api-resource

Laravel JSON API Resource

72
0
v1.2.2
About anxis/laravel-json-api-resource

anxis/laravel-json-api-resource is a Laravel package for laravel json api resource. It currently has 0 GitHub stars and 72 downloads on Packagist (latest version v1.2.2). Install it with composer require anxis/laravel-json-api-resource. Discover more Laravel packages by anxis or browse all Laravel packages to compare alternatives.

Last updated

Overview

Latest Version on Packagist Build Status Quality Score Total Downloads

This is potentially a drop in replacement for Laravel API Resource that produces JSON API response as per specification. (https://jsonapi.org/).

* Needs refactoring and tests, pull requests welcomed.

Installation

You can install the package via composer:

composer require kharysharpe/laravel-json-api-resource

Usage

Pre-made example https://github.com/kharysharpe/laravel-json-api-resource-example

From scratch

laravel new json-server
cd json-server
composer require kharysharpe/laravel-json-api-resource

routes/api.php

<?php

Route::get('/users', 'UserController@index');
Route::get('/users/{id}', 'UserController@show');

app/Http/Controllers/UserController.php

<?php

namespace App\Http\Controllers;

use App\User;

use Kharysharpe\LaravelJsonApiResource\Http\Resource\JsonApi\Resource;
use Kharysharpe\LaravelJsonApiResource\Http\Resource\JsonApi\ResourceCollection;

class UserController extends Controller
{
    public function index()
    {
        $user = User::all();

        return new ResourceCollection($user);
    }

    public function show($id)
    {
        $user = User::find($id);

        return new Resource($user);
    }
}

OR

<?php

namespace App\Http\Controllers;

use App\User;
use App\Http\Resource\UserCollection;
use App\Http\Resource\UserResource;

class UserController extends Controller
{
    public function index()
    {
        $user = User::all();

        return new UserCollection($user);
    }

    public function show($id)
    {
        $user = User::find($id);

        return new UserResource($user);
    }
}

app/Http/Resource/UserResource.php

<?php

namespace App\Http\Resource;

use Kharysharpe\LaravelJsonApiResource\Http\Resource\JsonApi\Resource;

class UserResource extends Resource
{
    //
}

app/Http/Resource/UserCollection.php

<?php

namespace App\Http\Resource;

use Kharysharpe\LaravelJsonApiResource\Http\Resource\JsonApi\ResourceCollection;

class UserCollection extends ResourceCollection
{

}

Prepare the database (Don't forget to add data to the user table)

php artisan migrate

Start your laravel application

php artisan serve

Visit

  • http://127.0.0.1:8000/api/users
  • http://127.0.0.1:8000/api/users/1

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

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

TODO

  • Add credits and/or references
  • Look at using https://github.com/spatie/laravel-json-api-paginate to fix pagination

Credits

License

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

Star History Chart