请求(Request)

可以自定义请求的方法(Http Method),如 GETPOSTPUTDELETE, POST/PUT 的请求体(Http Body)为JSON格式(ContentType: application/json)。

# 页面配置样例
{
    "api": "get:https://server.example.com/api-01",
    "api": "post:https://server.example.com/api-01",
    "api": "put:https://server.example.com/api-01",
    "api": "delete:https://server.example.com/api-01",
}

API网关

基塔将对API请求进行封装,浏览器将先请求基塔API网关,再由网关将请求发给页面中配置的服务器(如: server.example.com)。这样做主要是为了更安全和权限管理,还可自动记录访问日志:

  1. 安全。原始的API地址存储在网关,前端用户不可见,避免API地址泄露可能产生的安全问题。如:

    https://server.example.com/api-01http://api***.jeata.com/api/v1/api/master/601eb17c2d1******/
  2. 权限控制。网关对API请求进行鉴权和权限检查,您可以控制哪些用户组有请求权限。

  3. 访问日志。您可根据需要,在后台开启重要API的访问日志记录。

API映射

多数的开发者有多个服务器或有更改服务器host的需求,为了方便更改host,可以通过API映射功能快速替换实际的API。如:

https://dev.example.com/api-01https://prod.example.com/api-01http://api***.jeata.com/api/v1/api/master/601eb17c2d1******/

响应 (Response)

服务器端需要返回JSON格式(ContentType: application/json)响应,并对格式有些要求。

基础格式

{
  "status": 0,
  "msg": "OK",
  "data": {
    // ...其他字段
  }
}
字段 类型 说明
status int 返回状态字。0:正确 , 其他为错误
msg string 错误原因
data object 必须返回一个具有 key-value 结构的对象

例如:

// 正确的样例
{
  "status": 0,
  "msg": "OK",
  "data": {
    // ...其他字段
    "username": "张三",
    "age": 20,
    "mobile": "139****8899"
  }
}

// 错误的样例
{
  "status": 404,
  "msg": "用户不存在",
  "data": {}
}

表格/列表 (CRUD/LIST)

{
  "status": 0,
  "msg": "OK",
  "data": {
    "items": [
      {
        // 每一行的数据
        "id": 1,
        "xxx": "xxxx"
      }
    ],

    "total": 200 // 注意!!!这里不是当前请求返回的 items 的长度,而是数据库中一共有多少条数据,用于生成分页组件
    // 如果你不想要分页,把这个不返回就可以了。

    "hasNext": true // 如果不知道总数量,但是知道有下一页可以设置 hasNext ,用于生成简单的分页
  }
}
字段 类型 说明
items array[orbject] 每行的数据内容
total int 总数量。不是当前页的数量,用于分页。 不能与 hasNext 同时使用
hasNext boolean 是否有下一页。 不能与 total 同时使用

选择器/下拉框 (Option)

{
  "status": 0,
  "msg": "OK",
  "data": {
    // 默认值(可选)
    "value": "a",
    // 必须用 options 作为选项组的 key 值
    "options": [
      {
        "label": "选项A",
        "value": "a"
      },
      {
        "label": "选项B",
        "value": "b"
      },
      {
        "label": "选项C",
        "value": "c"
      }
    ]
  }
}
字段 类型 说明
value string 动态默认值
options array[object] 选项
options.label string 显示文字
options.value string 选中值
更新时间: 2021-10-20 08:19