接口规范示例

以下是一个接口规范的文档。

基本规范

每个请求都要携带的参数,用于描述每个请求的基本信息,后端可以通过这些字段进行接口统计,或APP终端设备的统计,一般放入header或者url参数中

字段名称 说明
version 客户端版本, eg:1.0.0
token 登录成功之后,server返回的登陆令牌
os 手机系统版本,eg:4.4
from 来源,eg:android/h5/ios
screen 手机尺寸,eg:1080*1920
model 机型信息,eg:iphone x
channel 渠道信息,eg:com.sj.qq
net APP网络状态
appid app唯一标识符

请求Path

基本原则(post=增,get=查,delete=删,put=改)

响应数据

字段名称 说明
code 响应状态码
msg 信息
time 时间戳
data 数据实体

json示例

{
    "code":200,
    "msg":"成功",
    "time":"14822",
    "data": {
     }
}
//先解析code和msg,判断code==200的情况下解析data

对于list型数据,data需要返回total,客户端用来判断是否本地list还可以加载更多
eg:

"data": {
    "list": ["苹果", "香蕉"],
    "total": "10"
}

命名规范--看着来吧

上传/下载接口--暂时不用

  • 上传,下载时,除了file本身,还要携带该file的md5,在传输过程中可能丢失部分数据,,导致文件损毁,所以需要md5jinxing完整性校验
  • 上传成功之后,在开发阶段可以将图片的url,图片存储的大小,模糊度等一起返回,上线之后去掉,留下url

兼容性

APP1.0在使用接口A,如果此时在开发1.1的时候修改了接口A的逻辑,在1.1发版的时候线上就会出现2个版本的客户端访问同一个接口A,为了保证1.0客户端调用接口A不会出错,就需要通过version字段或path中的"v1/login","v2/login"进行区分,不同版本客户端访问同一接口时处理逻辑要各自独立.

特别提几句

  • 避免浮点型数据计算。浮点型数据计算会损失精度。eg:1.5km可以转换成1500m进行处理
  • 身份证,手机号等150******000
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。