Skip to content
导航栏

API 预定义变量

在 API 定义中,可使用以下的内置的 key 引用 API 请求中的对象。

变量类型说明
:fullpathstring路由完整路径
:payload[key:String]:Any如果 Request Content-Type 为 application/json ,视为 Reqest Body 为 JSON
:query[key:String]:AnyURL-encoded Query String 解析后的数值
:form[key:String]:AnyPOST form
:query-param/:paramsObject ,QueryParam解析 URL-encoded Query String,返回 QueryParam。可以直接使用在模型处理器中
$form.字段名称StringPOST form 中的查询参数
$param.字段名称String路由变量数值,在 url 中使用变量匹配的变量,比如/:name/data/setting 中的 name
$query.字段名称StringURL-encoded Query String,URL 中的查询参数
$payload.字段名称Anypayload 字段数值,支持多级访问。如 $payload.user.name , $payload.manus.0.name
$session.字段名称AnySession 会话字段数,支持多级访问。如 $session.user.name , $session.manus.0.name 值
$file.字段名称Object File上传临时文件结构

session的设置逻辑可参考自定义用户登录 API

需要特别关注:query-param/:params,yao 框架会根据 url 中的查询条件转换成 QueryParam 对象。

以下类型的处理器或是对应的封装处理器均支持传入 QueryParam 查询参数:

Find, Get, Paginate, UpdateWhere, DeleteWhere, DestroyWhere

封装处理器:

  • yao.table.Get,搜索数据,返回数组
  • yao.table.Search,对应的是 Paginate 处理器,在搜索数据时,进行分页处理
  • yao.table.Find,根据 id 读取数据,返回对象
  • yao.table.UpdateWhere
  • yao.table.DeleteWhere
  • yao.list.Find,查找一条数据
  • yao.form.Find,form 查找一条数据
  • models.model_id.find
  • models.model_id.get
  • models.model_id.pagnate
  • models.model_id.UpdateWhere
  • models.model_id.DeleteWhere
  • models.model_id.DestroyWhere

即是所有使用 queryparam 对象类型的处理器都可以直接在 http api 定义中进行引用,具体请参考: QueryParam 语法

源代码:

  • gou/api.http.go 可根据自己的需求增加其它的变量引用