sedp-mis / base-api
Laravel中API资源的抽象
v0.1.0
2016-09-23 04:32 UTC
Requires
- php: >=5.4.0
- laravel/framework: >=4.2.11
- sedp-mis/base-repository: 0.*
- sedp-mis/lib: 1.*
This package is not auto-updated.
Last update: 2024-09-24 22:16:49 UTC
README
Laravel中API资源的抽象。与Laravel 4.2
和 5.*
兼容。
安装
使用composer安装base-api及其依赖项
composer require sedp-mis/base-api
介绍
此仓库的目的是创建API资源的常见用例的抽象。版本化我们的API是一种良好的实践,因此我们将基础API设置为api/v1
。因此,在以下API实现中,要使用的示例资源是posts
。
实现
请注意,@<method>
与Laravel中的控制器方法相同。
GET
方法(如@index
和@show
)的先进实现。
@index
和@show
- 选择属性。可以使用查询参数
attributes[]
使用选择或特定字段或属性获取资源。示例
GET url?attributes[]=id&attributes[]=title
- 关系。可以使用查询参数
relations[]
使用预加载的关系获取资源。示例
GET url?relations[]=comments&relations[]=labels
- 关系属性。获取的预加载关系也可以有选择或特定的属性。示例
GET url?relations[comments][attributes][]=id&relations[comments][attributes][]=text
@index
- 分页。对于资源列表,建议进行分页。
GET url?page=1&per_page=100
此示例显示当前在第一页,每页显示100条记录。如果没有page
参数,列表将默认获取所有资源。
- 过滤。使用
filters[attribute][]
参数按属性过滤列表也很方便。
- 默认
GET url?filters[tag][]=cool&filters[tag][]=trending
- 使用
equals
运算符(行为类似于默认示例)
GET url?filters[tag][equals][]=cool&filters[tag][equals][]=trending
- 使用
not_equals
运算符
GET url?filters[tag][not_equals][]=bug&filters[tag][not_equals][]=foo
- 搜索。还可以通过传递
search
查询参数进行搜索。
GET url?search[input]=SomeTextToSearch&search[compare][]=title&search[compare][]=description
- 排序。可以使用此语法进行排序:
sort[attribute_1]=asc&sort[attribute_n]=desc
。示例
GET url?sort[title]=asc