公司之前的项目(PHP)接口是这样定义的
{"code":100,"message":"请求成功",...}
code 基本上就是 100 成功 非 100 失败 一般全都是 101
至于 data list count 成员都是随接口定义的。
最近新搞了个项目,准备规范一下这些,想全局统一管理状态码与提示文本。
目前的思路是定义个 ReturnData 的类,所有的接口都必须返回这个类对象。
这样就可以规范接口格式了,至于 data 里面是啥就随意了。
然后所有的状态码都定义到这个类的常量,然后对应的提示写到配置文件。
状态码格式:
* 1. 3 位 全局码 定义参考 HTTP Status Code
* 2. 5 位 局部码 定义规则:ABBCC 自动补零
* 1) A 消息级别码 1 位, 1=控制性操作(如登录成功 /添加成功 需要跳转) 2=提示性消息(发送成功,无后续操作) 3=隐藏性提示(操作成功)
* 2) BB 模块标识码 2 位, 00 禁止使用 具体看 module 定义
* 3) CC 消息状态码 2 位, 00 禁止使用 10 以下预留
大致用法就是这样的
return new ReturnData($code = ReturnData::ACCOUNT_NO_LOGIN[, $data = ['url' => '/login'][, $message = '尚未登录']]);
{"code":10110,"message":"尚未登录","data":{"url":"/login"}}
====
return new ReturnData($data = ['count' => 100, 'list' => [...]]);
{"code":200,"message":"请求成功","data":{"count":100,"list":[...]}}
但是感觉所有的状态都要去类里面定义一下,声明头会不会太长, 后期没法看了?
说一下前提,我们是 PHP 开发,不同语言可能做法不太一样。
不知道大佬们都是怎么做的?还是真的都很随意写?
{"code":100,"message":"请求成功",...}
code 基本上就是 100 成功 非 100 失败 一般全都是 101
至于 data list count 成员都是随接口定义的。
最近新搞了个项目,准备规范一下这些,想全局统一管理状态码与提示文本。
目前的思路是定义个 ReturnData 的类,所有的接口都必须返回这个类对象。
这样就可以规范接口格式了,至于 data 里面是啥就随意了。
然后所有的状态码都定义到这个类的常量,然后对应的提示写到配置文件。
状态码格式:
* 1. 3 位 全局码 定义参考 HTTP Status Code
* 2. 5 位 局部码 定义规则:ABBCC 自动补零
* 1) A 消息级别码 1 位, 1=控制性操作(如登录成功 /添加成功 需要跳转) 2=提示性消息(发送成功,无后续操作) 3=隐藏性提示(操作成功)
* 2) BB 模块标识码 2 位, 00 禁止使用 具体看 module 定义
* 3) CC 消息状态码 2 位, 00 禁止使用 10 以下预留
大致用法就是这样的
return new ReturnData($code = ReturnData::ACCOUNT_NO_LOGIN[, $data = ['url' => '/login'][, $message = '尚未登录']]);
{"code":10110,"message":"尚未登录","data":{"url":"/login"}}
====
return new ReturnData($data = ['count' => 100, 'list' => [...]]);
{"code":200,"message":"请求成功","data":{"count":100,"list":[...]}}
但是感觉所有的状态都要去类里面定义一下,声明头会不会太长, 后期没法看了?
说一下前提,我们是 PHP 开发,不同语言可能做法不太一样。
不知道大佬们都是怎么做的?还是真的都很随意写?