spatie/laravel-endpoint-resources

此包已被弃用,不再维护。作者建议使用 spatie/laravel-resource-links 包。

添加 Laravel API 资源链接

1.1.2 2021-01-13 11:27 UTC

This package is auto-updated.

Last update: 2021-04-14 14:32:41 UTC


README

此包已被弃用: Laravel resource links two years later

添加 Laravel API 资源链接

Latest Version on Packagist GitHub Workflow Status Check & fix styling Total Downloads

假设您有一个包含 indexshowcreateeditstoreupdatedelete 方法的 UsersController 以及一个 UserResource。如果能够在 UserResource 中立即获得这些方法的 URL,而不需要从头开始构建,那岂不是很好?

此包将根据您定义的控制器或操作将这些链接添加到资源中。让我们看看一个资源示例。

class UserResource extends JsonResource
{
    use Spatie\ResourceLinks\HasLinks;
    use Spatie\ResourceLinks\HasMeta;

    public function toArray($request): array
    {
        return [
            'id' => $this->id,
            'name' => $this->name,
            'links' => $this->links(UsersController::class),
        ];
    }

    public static function meta()
    {
        return [
            'links' => self::collectionLinks(UsersController::class),
        ];
    }
}

现在在创建 UserResource 集合时,您将拥有来自 UserController 的所有链接。

{
   "data":[
      {
         "id":1,
         "name": "Ruben Van Assche",
         "links": {
            "show": "https://laravel.app/users/1",
            "edit": "https://laravel.app/users/1/edit",
            "update": "https://laravel.app/users/1",
            "delete": "https://laravel.app/users/1"
         }
      }
   ],
   "meta": {
      "links": {
         "index": "https://laravel.app/users",
         "create": "https://laravel.app/users/create",
         "store":  "https://laravel.app/users"
      }
   }
}

支持我们

68747470733a2f2f6769746875622d6164732e73332e65752d63656e7472616c2d312e616d617a6f6e6177732e636f6d2f6c61726176656c2d7265736f757263652d6c696e6b732e6a70673f743d31

我们在创建 一流的开放式源代码包 上投入了大量的资源。您可以通过 购买我们的付费产品之一 来支持我们。

我们非常感谢您从家乡寄给我们一张明信片,说明您正在使用我们的哪个包。您可以在 我们的联系页面 上找到我们的地址。我们将所有收到的明信片发布在我们的 虚拟明信片墙 上。

为什么在资源中包含链接?

假设您正在构建一个单页应用程序或使用 Inertia 构建的应用程序。那么您有一个在后台运行的 PHP 应用程序和一个在前面运行的 JavaScript 应用程序。这些应用程序通过 API 进行通信,但前端如果想要路由用户到另一个页面怎么办?

由于路由是在后台定义的,前端并不知道用户应该被路由到哪个位置。我们可以在 JavaScript 代码中直接写入 URL,但如果路由发生更改怎么办?所以为什么不从后端传递这些路由到前端呢?您可以直接手动编写所有这些路由,或者让这个包为您完成这项工作。

设置资源链接

我们为此包有一个专门的 文档 网站。

测试

composer test

变更日志

请参阅变更日志获取最近更改的更多信息。

贡献

请参阅贡献指南以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件freek@spatie.be联系,而不是使用问题跟踪器。

致谢

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件