spatie / laravel-endpoint-resources
Requires
- php: ^7.2|^8.0
- illuminate/database: ~5.8.0|^6.0|^7.0|^8.0
- illuminate/routing: ~5.8.0|^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ~3.8.0|^4.0|^5.0|^6.0
- phpunit/phpunit: ^8.0|^9.0
This package is auto-updated.
Last update: 2021-04-14 14:32:41 UTC
README
此包已被弃用: Laravel resource links two years later
添加 Laravel API 资源链接
假设您有一个包含 index
、show
、create
、edit
、store
、update
和 delete
方法的 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" } } }
支持我们
我们在创建 一流的开放式源代码包 上投入了大量的资源。您可以通过 购买我们的付费产品之一 来支持我们。
我们非常感谢您从家乡寄给我们一张明信片,说明您正在使用我们的哪个包。您可以在 我们的联系页面 上找到我们的地址。我们将所有收到的明信片发布在我们的 虚拟明信片墙 上。
为什么在资源中包含链接?
假设您正在构建一个单页应用程序或使用 Inertia 构建的应用程序。那么您有一个在后台运行的 PHP 应用程序和一个在前面运行的 JavaScript 应用程序。这些应用程序通过 API 进行通信,但前端如果想要路由用户到另一个页面怎么办?
由于路由是在后台定义的,前端并不知道用户应该被路由到哪个位置。我们可以在 JavaScript 代码中直接写入 URL,但如果路由发生更改怎么办?所以为什么不从后端传递这些路由到前端呢?您可以直接手动编写所有这些路由,或者让这个包为您完成这项工作。
设置资源链接
我们为此包有一个专门的 文档 网站。
测试
composer test
变更日志
请参阅变更日志获取最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件freek@spatie.be联系,而不是使用问题跟踪器。
致谢
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。