响应格式自定义
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