为Laravel应用程序提供JSON:API。

v4.1.0 2024-06-26 19:47 UTC

README

Tests

为Web工匠提供JSON:API

在您的Laravel应用程序中实现功能丰富的JSON:API兼容API。今天构建您下一个符合标准的API。

为什么使用JSON:API和Laravel JSON:API?

这是个好问题!以下是一些来自Denisa Halmaghi这篇优秀文章的原因

为什么使用JSON:API?

  • 标准化的、一致的API。
  • 功能丰富 - 其中包括:稀疏字段集(仅获取您需要的字段)、过滤、排序、分页、关系预加载(包含,解决了N+1问题)。
  • 易于理解。

为什么使用Laravel JSON:API?

  • 节省大量开发时间。
  • 高度可维护的代码。
  • 优秀的、详尽的文档。
  • 强大的约定,但也可以高度自定义。
  • 使用原生Laravel功能(如策略和表单请求)来简化开发者的迁移过程。
  • 美观、表达式的Nova风格模式。
  • 通过表达式的测试辅助器进行完全测试。
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();
    }
}

文档

请参阅我们的网站,laraveljsonapi.io

教程

如果您是JSON:API和/或Laravel JSON:API的新手,那么Laravel JSON:API教程是一个学习的好方法!

按照教程构建一个具有JSON:API兼容API的博客应用程序。

安装

使用Composer安装

composer require laravel-json-api/laravel

请参阅我们的文档以获取进一步的安装说明。

升级

在升级时,通常希望升级此包以及所有相关包。这是推荐的方法

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

示例应用程序

要查看使用此包的示例Laravel应用程序,请参阅教程应用程序

许可证

Laravel JSON:API是开源软件,许可协议为MIT许可证