Laravel API 资源链接

Laravel Resource LinksRuben Van Assche和Spatie的软件包,可以轻松地向您的 Laravel API 资源添加链接。

这是软件包文档中的一个示例,说明了 UserResourceLaravel 资源控制器匹配的典型示例:

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),
        ];
    }
}

上面的代码将生成以下内容:

{
   "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"
      }
   }
}

现在,您的前端具有导航给定用户的API所需的一切。提供集合元数据还提供对列出现有用户和创建新用户的链接的访问。

更多详细使用请看扩展官方文档https://docs.spatie.be/laravel-resource-links/v1/introduction/。您还可以在GitHub上的spatie/laravel-resource-links上查看源代码。

翻译自:https://laravel-news.com/laravel-api-resource-links