sedp-mis/base-api

Laravel中API资源的抽象

v0.1.0 2016-09-23 04:32 UTC

This package is not auto-updated.

Last update: 2024-09-24 22:16:49 UTC


README

Build Status Coverage Status

Laravel中API资源的抽象。与Laravel 4.25.* 兼容。

安装

使用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