laravel maintained by laravel-json-api
- ext-json *
- php ^8.2
- laravel-json-api/core ^5.3
- laravel-json-api/eloquent ^4.7
- laravel-json-api/encoder-neomerx ^4.3
- laravel-json-api/exceptions ^3.3
- laravel-json-api/spec ^3.3
- laravel-json-api/validation ^4.4
- laravel/framework ^11.0|^12.1|^13.0
- ext-json *
- php ^8.2
- laravel-json-api/core ^5.3
- laravel-json-api/eloquent ^4.7
- laravel-json-api/encoder-neomerx ^4.3
- laravel-json-api/exceptions ^3.3
- laravel-json-api/spec ^3.3
- laravel-json-api/validation ^4.4
- laravel/framework ^11.0|^12.1|^13.0
- php ^8.2
- ext-json *
- laravel-json-api/core ^5.3
- laravel-json-api/eloquent ^4.7
- laravel-json-api/encoder-neomerx ^4.3
- laravel-json-api/exceptions ^3.3
- laravel-json-api/spec ^3.3
- laravel-json-api/validation ^4.4
- laravel/framework ^11.0|^12.1|^13.0
- php ^8.2
- ext-json *
- laravel-json-api/core ^5.3
- laravel-json-api/eloquent ^4.7
- laravel-json-api/encoder-neomerx ^4.3
- laravel-json-api/exceptions ^3.3
- laravel-json-api/spec ^3.3
- laravel-json-api/validation ^4.4
- laravel/framework ^11.0|^12.1|^13.0
- php ^8.2
- ext-json *
- laravel-json-api/core ^5.2
- laravel-json-api/eloquent ^4.5
- laravel-json-api/encoder-neomerx ^4.2
- laravel-json-api/exceptions ^3.2
- laravel-json-api/spec ^3.2
- laravel-json-api/validation ^4.3
- laravel/framework ^11.0|^12.0
- php ^8.2
- ext-json *
- laravel-json-api/core ^5.0.1
- laravel-json-api/eloquent ^4.4
- laravel-json-api/encoder-neomerx ^4.1
- laravel-json-api/exceptions ^3.1
- laravel-json-api/spec ^3.1
- laravel-json-api/validation ^4.2
- laravel/framework ^11.0
- php ^8.2
- ext-json *
- laravel-json-api/core ^5.0.1
- laravel-json-api/eloquent ^4.4
- laravel-json-api/encoder-neomerx ^4.1
- laravel-json-api/exceptions ^3.1
- laravel-json-api/spec ^3.1
- laravel-json-api/validation ^4.2
- laravel/framework ^11.0
- php ^8.2
- ext-json *
- laravel-json-api/core ^5.0.1
- laravel-json-api/eloquent ^4.4
- laravel-json-api/encoder-neomerx ^4.1
- laravel-json-api/exceptions ^3.1
- laravel-json-api/spec ^3.1
- laravel-json-api/validation ^4.2
- laravel/framework ^11.0
- php ^8.2
- ext-json *
- laravel-json-api/core ^4.3.2
- laravel-json-api/eloquent ^4.4
- laravel-json-api/encoder-neomerx ^4.1
- laravel-json-api/exceptions ^3.1
- laravel-json-api/spec ^3.1
- laravel-json-api/validation ^4.2
- laravel/framework ^11.0
- php ^8.2
- ext-json *
- laravel-json-api/core ^4.1
- laravel-json-api/eloquent ^4.1
- laravel-json-api/encoder-neomerx ^4.0
- laravel-json-api/exceptions ^3.0
- laravel-json-api/spec ^3.0
- laravel-json-api/validation ^4.0
- laravel/framework ^11.0
- php ^8.2
- ext-json *
- laravel-json-api/core ^5.0
- laravel-json-api/eloquent dev-feature/validation
- laravel-json-api/encoder-neomerx ^5.0
- laravel-json-api/exceptions ^4.0
- laravel-json-api/spec ^4.0
- laravel-json-api/validation ^5.0
- laravel/framework ^11.0
- php ^8.2
- ext-json *
- laravel-json-api/core ^4.0
- laravel-json-api/eloquent ^4.0
- laravel-json-api/encoder-neomerx ^4.0
- laravel-json-api/exceptions ^3.0
- laravel-json-api/spec ^3.0
- laravel-json-api/validation ^4.0
- laravel/framework ^11.0
- php ^8.1
- ext-json *
- laravel-json-api/core ^3.3
- laravel-json-api/eloquent ^3.1
- laravel-json-api/encoder-neomerx ^3.1
- laravel-json-api/exceptions ^2.1
- laravel-json-api/spec ^2.0
- laravel-json-api/validation ^3.0
- laravel/framework ^10.0
- php ^8.1
- ext-json *
- laravel-json-api/core ^3.3
- laravel-json-api/eloquent ^3.1
- laravel-json-api/encoder-neomerx ^3.1
- laravel-json-api/exceptions ^2.1
- laravel-json-api/spec ^2.0
- laravel-json-api/validation ^3.0
- laravel/framework ^10.0
- php ^8.1
- ext-json *
- laravel-json-api/core ^3.3
- laravel-json-api/eloquent ^3.1
- laravel-json-api/encoder-neomerx ^3.1
- laravel-json-api/exceptions ^2.1
- laravel-json-api/spec ^2.0
- laravel-json-api/validation ^3.0
- laravel/framework ^10.0
- php ^8.1
- ext-json *
- laravel-json-api/core ^4.0
- laravel-json-api/eloquent ^4.0
- laravel-json-api/encoder-neomerx ^4.0
- laravel-json-api/exceptions ^3.0
- laravel-json-api/spec ^3.0
- laravel-json-api/validation ^4.0
- laravel/framework ^10.0
- php ^8.1
- ext-json *
- laravel-json-api/core ^3.2
- laravel-json-api/eloquent ^3.0
- laravel-json-api/encoder-neomerx ^3.0
- laravel-json-api/exceptions ^2.0
- laravel-json-api/spec ^2.0
- laravel-json-api/validation ^3.0
- laravel/framework ^10.0
- php ^8.1
- ext-json *
- laravel-json-api/core ^3.0
- laravel-json-api/eloquent ^3.0
- laravel-json-api/encoder-neomerx ^3.0
- laravel-json-api/exceptions ^2.0
- laravel-json-api/spec ^2.0
- laravel-json-api/validation ^3.0
- laravel/framework ^10.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^2.4
- laravel-json-api/eloquent ^2.3
- laravel-json-api/encoder-neomerx ^2.0.1
- laravel-json-api/exceptions ^1.1.1
- laravel-json-api/spec ^1.2
- laravel-json-api/validation ^2.1.3
- laravel/framework ^8.76|^9.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^2.4
- laravel-json-api/eloquent ^2.2.1
- laravel-json-api/encoder-neomerx ^2.0.1
- laravel-json-api/exceptions ^1.1.1
- laravel-json-api/spec ^1.2
- laravel-json-api/validation ^2.1.2
- laravel/framework ^8.76|^9.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^2.4
- laravel-json-api/eloquent ^2.2.1
- laravel-json-api/encoder-neomerx ^2.0.1
- laravel-json-api/exceptions ^1.1.1
- laravel-json-api/spec ^1.2
- laravel-json-api/validation ^2.1.1
- laravel/framework ^8.76|^9.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^2.4
- laravel-json-api/eloquent ^2.2
- laravel-json-api/encoder-neomerx ^2.0.1
- laravel-json-api/exceptions ^1.1.1
- laravel-json-api/spec ^1.2
- laravel-json-api/validation ^2.1.1
- laravel/framework ^8.76|^9.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^2.3
- laravel-json-api/eloquent ^2.1.1
- laravel-json-api/encoder-neomerx ^2.0.1
- laravel-json-api/exceptions ^1.1
- laravel-json-api/spec ^1.2
- laravel-json-api/validation ^2.1
- laravel/framework ^8.76|^9.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^2.2
- laravel-json-api/eloquent ^2.1.1
- laravel-json-api/encoder-neomerx ^2.0
- laravel-json-api/exceptions ^1.1
- laravel-json-api/spec ^1.2
- laravel-json-api/validation ^2.1
- laravel/framework ^8.76|^9.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^2.2
- laravel-json-api/eloquent ^2.1.1
- laravel-json-api/encoder-neomerx ^2.0
- laravel-json-api/exceptions ^1.1
- laravel-json-api/spec ^1.1.1
- laravel-json-api/validation ^2.0
- laravel/framework ^8.76|^9.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^2.2
- laravel-json-api/eloquent ^2.1.1
- laravel-json-api/encoder-neomerx ^2.0
- laravel-json-api/exceptions ^1.1
- laravel-json-api/spec ^1.1.1
- laravel-json-api/validation ^2.0
- laravel/framework ^8.76|^9.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^2.2
- laravel-json-api/eloquent ^2.1
- laravel-json-api/encoder-neomerx ^2.0
- laravel-json-api/exceptions ^1.1
- laravel-json-api/spec ^1.1.1
- laravel-json-api/validation ^2.0
- laravel/framework ^8.76|^9.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^2.1
- laravel-json-api/eloquent ^2.1
- laravel-json-api/encoder-neomerx ^2.0
- laravel-json-api/exceptions ^1.1
- laravel-json-api/spec ^1.1
- laravel-json-api/validation ^2.0
- laravel/framework ^8.76|^9.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^2.0
- laravel-json-api/eloquent ^2.0
- laravel-json-api/encoder-neomerx ^2.0
- laravel-json-api/exceptions ^1.1
- laravel-json-api/spec ^1.1
- laravel-json-api/validation ^2.0
- laravel/framework ^8.76|^9.0
- php ^7.4|8.0.*
- ext-json *
- laravel-json-api/core ^1.1
- laravel-json-api/eloquent ^1.0.1
- laravel-json-api/encoder-neomerx ^1.1
- laravel-json-api/exceptions ^1.0
- laravel-json-api/spec ^1.0
- laravel-json-api/validation ^1.0
- laravel/framework ^8.30
- php ^7.4|8.0.*
- ext-json *
- laravel-json-api/core ^1.0.0
- laravel-json-api/eloquent ^1.0.1
- laravel-json-api/encoder-neomerx ^1.0.0
- laravel-json-api/exceptions ^1.0.0
- laravel-json-api/spec ^1.0.0
- laravel-json-api/validation ^1.0.0
- laravel/framework ^8.30
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^1.0.0
- laravel-json-api/eloquent ^1.0.0
- laravel-json-api/encoder-neomerx ^1.0.0
- laravel-json-api/exceptions ^1.0.0
- laravel-json-api/spec ^1.0.0
- laravel-json-api/validation ^1.0.0
- laravel/framework ^8.30
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^1.0.0-beta.5
- laravel-json-api/eloquent ^1.0.0-beta.6
- laravel-json-api/encoder-neomerx ^1.0.0-beta.1
- laravel-json-api/exceptions ^1.0.0-beta.4
- laravel-json-api/spec ^1.0.0-beta.2
- laravel-json-api/validation ^1.0.0-beta.2
- laravel/framework ^8.30
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^1.0.0-beta.4
- laravel-json-api/eloquent ^1.0.0-beta.5
- laravel-json-api/encoder-neomerx ^1.0.0-beta.1
- laravel-json-api/exceptions ^1.0.0-beta.2
- laravel-json-api/spec ^1.0.0-beta.1
- laravel-json-api/validation ^1.0.0-beta.2
- laravel/framework ^8.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^1.0.0-beta.3
- laravel-json-api/eloquent ^1.0.0-beta.4
- laravel-json-api/encoder-neomerx ^1.0.0-beta.1
- laravel-json-api/exceptions ^1.0.0-beta.2
- laravel-json-api/spec ^1.0.0-beta.1
- laravel-json-api/validation ^1.0.0-beta.2
- laravel/framework ^8.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^1.0.0-beta.2
- laravel-json-api/eloquent ^1.0.0-beta.2
- laravel-json-api/encoder-neomerx ^1.0.0-beta.1
- laravel-json-api/exceptions ^1.0.0-beta.2
- laravel-json-api/spec ^1.0.0-beta.1
- laravel-json-api/validation ^1.0.0-beta.1
- laravel/framework ^8.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^1.0.0-beta.1
- laravel-json-api/eloquent ^1.0.0-beta.1
- laravel-json-api/encoder-neomerx ^1.0.0-beta.1
- laravel-json-api/exceptions ^1.0.0-beta.1
- laravel-json-api/spec ^1.0.0-beta.1
- laravel-json-api/validation ^1.0.0-beta.1
- laravel/framework ^8.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^1.0.0-alpha.5
- laravel-json-api/eloquent ^1.0.0-alpha.5
- laravel-json-api/encoder-neomerx ^1.0.0-alpha.4
- laravel-json-api/exceptions ^1.0.0-alpha.2
- laravel-json-api/spec ^1.0.0-alpha.4
- laravel-json-api/validation ^1.0.0-alpha.5
- laravel/framework ^8.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^1.0.0-alpha.4
- laravel-json-api/eloquent ^1.0.0-alpha.4
- laravel-json-api/encoder-neomerx ^1.0.0-alpha.4
- laravel-json-api/exceptions ^1.0.0-alpha.2
- laravel-json-api/spec ^1.0.0-alpha.4
- laravel-json-api/validation ^1.0.0-alpha.4
- laravel/framework ^8.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^1.0.0-alpha.3
- laravel-json-api/eloquent ^1.0.0-alpha.3
- laravel-json-api/encoder-neomerx ^1.0.0-alpha.3
- laravel-json-api/exceptions ^1.0.0-alpha.2
- laravel-json-api/spec ^1.0.0-alpha.3
- laravel-json-api/validation ^1.0.0-alpha.3
- laravel/framework ^8.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^1.0.0-alpha.2
- laravel-json-api/eloquent ^1.0.0-alpha.2
- laravel-json-api/encoder-neomerx ^1.0.0-alpha.2
- laravel-json-api/exceptions ^1.0.0-alpha.1
- laravel-json-api/spec ^1.0.0-alpha.2
- laravel-json-api/validation ^1.0.0-alpha.2
- laravel/framework ^8.0
- php ^7.4|^8.0
- ext-json *
- laravel-json-api/core ^1.0.0-alpha.1
- laravel-json-api/eloquent ^1.0.0-alpha.1
- laravel-json-api/encoder-neomerx ^1.0.0-alpha.1
- laravel-json-api/exceptions ^1.0.0-alpha.1
- laravel-json-api/spec ^1.0.0-alpha.1
- laravel-json-api/validation ^1.0.0-alpha.1
- laravel/framework ^8.0
JSON:API for Web Artisans
Implement feature-rich JSON:API compliant APIs in your Laravel applications. Build your next standards-compliant API today.
Why use JSON:API and Laravel JSON:API?
Great question! Here's some reasons from this excellent article by Denisa Halmaghi:
Why Use JSON:API?
- Standardised, consistent APIs.
- Feature rich - some of which are: sparse fieldsets (only fetch the fields you need), filtering, sorting, pagination, eager loading for relationships (includes, which solve the N+1 problem).
- Easy to understand.
Why use Laravel JSON:API?
- Saves a lot of development time.
- Highly maintainable code.
- Great, extensive documentation.
- Strong conventions, but also highly customisable.
- Makes use of native Laravel features such as policies and form requests to make the shift easier for developers.
- Beautiful, expressive Nova-style schemas.
- Fully testable via expressive test helpers.
class PostSchema extends Schema
{
/**
* The model the schema corresponds to.
*
* @var string
*/
public static string $model = Post::class;
/**
* The maximum include path depth.
*
* @var int
*/
protected int $maxDepth = 3;
/**
* Get the resource fields.
*
* @return array
*/
public function fields(): array
{
return [
ID::make(),
BelongsTo::make('author')->type('users')->readOnly(),
HasMany::make('comments')->readOnly(),
Str::make('content'),
DateTime::make('createdAt')->sortable()->readOnly(),
DateTime::make('publishedAt')->sortable(),
Str::make('slug'),
BelongsToMany::make('tags'),
Str::make('title')->sortable(),
DateTime::make('updatedAt')->sortable()->readOnly(),
];
}
/**
* Get the resource filters.
*
* @return array
*/
public function filters(): array
{
return [
WhereIdIn::make($this),
WhereIn::make('author', 'author_id'),
];
}
/**
* Get the resource paginator.
*
* @return Paginator|null
*/
public function pagination(): ?Paginator
{
return PagePagination::make();
}
}
Documentation
See our website, laraveljsonapi.io
Tutorial
New to JSON:API and/or Laravel JSON:API? Then the Laravel JSON:API tutorial is a great way to learn!
Follow the tutorial to build a blog application with a JSON:API compliant API.
Installation
Install using Composer
composer require laravel-json-api/laravel
See our documentation for further installation instructions.
Upgrading
When upgrading you typically want to upgrade this package and all our related packages. This is the recommended way:
composer require laravel-json-api/laravel --no-update
composer require laravel-json-api/testing --dev --no-update
composer up "laravel-json-api/*" cloudcreativity/json-api-testing
Example Application
To view an example Laravel application that uses this package, see the Tutorial Application.
License
Laravel JSON:API is open-sourced software licensed under the MIT License.