Important: This package is not actively maintained. For bug fixes and new features, please fork. or take a look at sarala-io/sarala
Laravel support package to easily develop REST API following JSON API specification.
Via Composer
$ composer require sarala-io/laravel-companion
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');
}
...
}
Please see CHANGELOG for more information on what has changed recently.
$ composer test
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.