框架规范和支持的参数

API words

URL

url字段名称 简要说明 例子
< collection> 资源名称,支持3种名称:模型名、别名、表名 "/Users", "/users", "/user"
< key> id or key_field "/users/1", "/users/@windprozhao"
< attribute> 子资源

api supports

method scope description
GET collection 获取一个资源列表
GET resource 获取单个资源
POST resource 新增资源
PUT,PATCH resource 更新资源
DELETE resource 删除资源

params

查询参数

参数 格式 支持并列条件 description 例子
_page int 数据分页页数 /users?_page=1&_num=20
_num int 数据分页每页数量 /users?_page=1&_num=20
_expand int 资源展开的层级 /users?_expand=1
_orders "字段:排序类型" asc or desc 数据排序 单个字段排序:/users?_orders=id:asc 多个字段排序:/users?_orders[]=id:asc&_orders[]=code:desc
_fields "表名:字段1,字段2" 字段白名单限制 限制单一种类资源:/users?_fields=users:id,name,groups 限制多种资源:/users?_fields[]=users:id,name,groups&_fields[]=groups:id
_except "表名:字段1,字段2" 字段黑名单限制 限制单一种类资源:/users?_except=users:id,name,groups 限制多种资源:/users?_except[]=users:id,name,groups&_except[]=groups:id
_match string 以"或"为条件搜索模型配置:match_fields /users?_match="zhao"

字段过滤

格式 支持并列条件 description 例子
{attr}={value} 过滤指定字段 过滤单一值:/users?name=windprozhao 列表查询:/users?name[]=windpro1&name[]=windpro2
{attr}=%{value}% 模糊查询指定字段 过滤单一值:/users?name=windpro% 语法与mysql like 类似。
{sub_resource}.{attr}={value} 过滤子资源字段 组为 admin 的用户:/users?groups.name=admin 列表查询:/users?groups.name[]=admin&groups.name[]=normal
{sub_resource}.match={value} 搜索子资源配置:match_fields 组为 ad* 的用户:/users?groups._match=ad

HTTP status code

注:[400,503]为错误的范围

返回码 简要说明
200 请求正确;更新成功(PUT)
201 创建成功
204 删除成功
206 成功,但有warnning
400 失败。字段错误, 头字段不支持, 非法路径
401 失败。表示用户没有权限(令牌、用户名、密码错误)。
403 失败。表示用户得到授权(与401错误相对),但是访问是被禁止的。
404 失败。资源未找到
406 失败。用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
500 错误。内部错误、超时
503 错误。服务器繁忙

error type

类型 简要说明
Unknown 未知错误。自定义错误。
PermissionDenied 权限错误
AccessDenied 非法访问。一般出现在路径不存在等
RequestHeadersAcceptNotSupport Headers:ACCEPT 类型不支持
RequestHeadersContentTypeNotSupport Headers:Content-type 类型不支持
RestAssertionError 断言异常
ResourceNotFound 资源不存在
ResourceRelationNotExists 资源关系不存在
IllegalRequestData 提交数据错误。一般出现在数据校验
StatementErrorException,DatabaseExecutionError,DatabaseConnectionError 数据库错误
ResourcesAlreadyExists 资源已存在,无法创建
ForeignKeyConstraintFails 外键依赖异常
ResourcesConstraintNotNullable 字段必须非空
ResourcesConstraintNotDefaultValue 字段没有默认值