响应格式自定义

1 背景

编写的 web 服务可能会和很多服务进行对接,交互的格式一般是约定好的,比如有如下几种方式

1.1 butterfly response 格式

butterfly response 格式

{
    "stat": "OK"                        // str , 错误是标识为 ERR_XXX (XXX 为错误简要内容)
    "data":  {name: "liming"}           // object
             {list: [{name: "liming"}, {name: "fengchengcheng"}]}
             {}                         // 如果是提交表单这类 API,没有数据需要返回的话,可以返回空的 object
}

1.2 其他 response 格式

1.2.1 amis 要求的格式

{
  "status": 0,
  "msg": "",
  "data": {
    ... 其他字段
  }
}
  • status: 返回 0,表示当前接口正确返回,否则按错误请求处理;

  • msg: 返回接口处理信息,主要用于表单提交或请求失败时的 toast 显示;

  • data: 必须返回一个具有 key-value 结构的对象。

1.2.2 openstack neutron

安全组详情

1.2.3 other

1

2

2 分析

分析上面多种返回格式,可以看出 stat 字段与 code 和 message 两个字段的含义相同

如果多个服务协调工作的话,服务的返回 code 和 message 应该是多个服务保持一致的,否则同一个返回码如果是多种含义的话,则后期维护会非常不方便

2.1 AMIS 前端实现方法

配置接收适配器

3 目标

3.1 如何修改返回样式

3.1.1 stat 转换为 code

stat 转换为 code(错误码)

3.1.2 stat 转换为 success

stat 转换为 success(是否成功 bool)

4 实现

4.1 转换方式

4.2 兼容

  • 百川依赖 "stat" 状态字段

  • amis 前端目前使用了 "stat" 状态字段进行转换

故改为添加 STAT_ADAPTOR 时,仅扩展状态字段信息

4.2 code

4.2.1 配置

butterfly/conf/config.py

4.2.2 code

5 传送门

Last updated