sarala-io / laravel-companion
Laravel support library for JSON-API developers.
Installs: 2 322
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 4
Forks: 0
Open Issues: 0
Requires
- php: ^7.1.3
- illuminate/database: ^5.6
- illuminate/http: ^5.6
- illuminate/support: ^5.6
- league/fractal: ^0.17.0
Requires (Dev)
- orchestra/testbench: ^3.6
- phpunit/phpunit: >=5.4.3
- squizlabs/php_codesniffer: ^2.3
This package is auto-updated.
Last update: 2022-02-01 13:12:32 UTC
README
Important: This package is not actively maintained. For bug fixes and new features, please fork. or take a look at sarala-io/sarala
Sarala Laravel Companion
Laravel support package to easily develop REST API following JSON API specification.
Install
Via Composer
$ composer require sarala-io/laravel-companion
Usage
Eloquent model implementation
namespace App; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Builder; use Sarala\Filterable; class Post extends Model { use Filterable; ... }
Dedicated query filter implementation
namespace App\Filters; use Sarala\FilterAbstract; class PostsFilter extends FilterAbstract { protected $lookup = [ 'my' => 'composedByMe' ]; public function composedByMe() { return $this->builder->composedBy(auth()->user()); } ... }
Controller implementation
namespace App\Http\Controllers; use App\Post; use App\Filters\PostsFilter; use App\Http\Transformers\PostTransformer; use Sarala\JsonApiResponse; use Illuminate\Http\Request; class PostController extends Controller { public function index(Request $request, PostsFilter $filters) { $data = Post::filter($filters)->paginateOrGet($request); return new JsonApiResponse($data, new PostTransformer(), 'posts'); } public function show(Post $post, PostsFilter $filter) { $data = Post::filter($filter)->find($post->id); return new JsonApiResponse($data, new PostTransformer(), 'posts'); } ... }
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email milroy.me@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.