osedea / laravel-rest
一个提供基于 Laravel 框架版本 5 的 RESTful API 的包,使用命令总线。
Requires
- php: >=5.4.0
- illuminate/support: ~5.0
This package is not auto-updated.
Last update: 2024-09-28 17:32:03 UTC
README
此包已不再维护。如果您有任何问题,您可以自由地 fork 仓库。
LaravelRest
这是一个 Laravel 5 包,它为您的模型创建 RESTful API 路由,并使用命令总线来执行 CRUD 请求。
安装
使用 composer 安装此包
composer require osedea/laravel-rest:~0.2.1
用法
首先,将 eloquence 服务提供者添加到您的 config/app.php 文件中
'Osedea\LaravelRest\LaravelRestServiceProvider'
所有模型都需要使用 trait \Osedea\LaravelRest\Traits\CommandModel
来提供一些属性和方法
<?php
namespace Acme;
class SomeModel {
use \Osedea\LaravelRest\Traits\CommandModel;
}
然后,将配置文件发布到您的应用程序
`php artisan vendor:publish --provider="Osedea\LaravelRest\LaravelRestServiceProvider"`
现在您应该可以开始了,无需进行任何更改!访问 /api/v1/users
查看用户列表!
配置选项
应用程序命名空间
您需要指定项目中使用的应用程序命名空间。默认为 App,但如果您已更改它,您需要在配置中更改它
<?php
return [
'app_namespace' => 'SomethingElse'
];
模型命名空间
如果您的模型在不同于 app_namespace
的自定义命名空间中,您可以指定此配置
<?php
return [
'models_namespace' => 'SomethingElse'
];
映射
要将资源添加到默认控制器,只需在 /config/api.php
文件中添加一行即可
<?php
return [
'mapping' => [
'users' => 'User',
]
];
API 前缀
如果您想使用不同的前缀,可以通过指定前缀键来完成
<?php
return [
'prefix' => 'api/v2'
];
如果您没有指定键前缀,它将默认为 api
。
命令和默认控制器
LaravelRest 附带一个默认的 REST 控制器来处理资源。这允许自动处理资源列表、显示、删除和列出关系。
操作
选项
分页
默认情况下,所有列表都是分页的。您可以通过覆盖变量为每个模型设置每页的项目数
protected $perPage = 10;
您还可以定义此值的最大值,因为它可以在请求中覆盖
protected $perPageMax = 50;
然后在请求中: /users?page=2&perPage=3
排序
可以通过用逗号分隔来对多个列进行排序
/users?sort=name,email
您可以通过在列名前放置一个 -
来选择顺序(desc 或 asc)
/users?sort=-id
字段
如果您在查询列表或资源时不需要所有字段,您可以指定您需要的字段
/users?fields=id,name
嵌套
仅在您真的需要时使用。
如果您绝对需要嵌套关系,可以这样指定
/users?embed=groups
命令
默认值
LaravelRest 为几个动作提供了默认命令
GET /{resource}
:Osedea\LaravelRest\Commands\DefaultCommand\IndexCommand
GET /{resource}/{id}
:Osedea\LaravelRest\Commands\DefaultCommand\ShowCommand
DELETE /{resource}/{id}
:Osedea\LaravelRest\Commands\DefaultCommand\DeleteCommand
GET /{resource}/{id}/{relation}
:Osedea\LaravelRest\Commands\DefaultCommand\RelationIndexCommand
使用这些默认值,映射就足够它们工作了。您可以通过创建使用正确命名空间的自定义命令来覆盖它们。
例如,要覆盖 POST /users/{id}
默认命令,创建一个名为 Osedea\LaravelRest\Commands\UserCommand\DestroyCommand
的命令。
创建和更新
这些操作非常特定于某个资源,因此没有默认值。
您必须为映射文件中列出的所有资源创建它们。其模式如下
Osedea\LaravelRest\Commands\{mapping[资源]}Command\{操作}Command
例如,要添加 users
资源创建命令,命令是
Osedea\LaravelRest\Commands\UserCommand\StoreCommand
一个命令类
命令类需要继承 Osedea\LaravelRest\Commands\Command
并实现 Illuminate\Contracts\Bus\SelfHandling
。