接口设计规范

接口设计规范

接口规范化以后,会少很多坑,避免自己下次再遇到。

1 接口示例

接口描述:用户登陆成功后,或进入个人中心时会获取一次用户信息

URI方法
/userinfoGET

请求参数

名称必填备注
id用户id

响应参数

名称类型备注
idString用户id
nameString姓名,例:张三
ageString年龄,例:20

json示例

{
    "code":200,
    "msg":"成功",
    "time":"1482213602000",
    "data": {
        "id":"1001",
        "name":"张三",
        "age":"20"
    }
}

2 基本规范

2.1 公共参数

公共参数是每个接口都要携带的参数,描述每个接口的基本信息,用于统计或其他用途,放在header或url参数中。例如

字段名称说明
version客户端版本。1.0.0
token登录令牌
os手机系统版本。12
from请求来源。android/ios/h5
screen手机尺寸。1080*1920
model机型。IPhone7
net网络状态。wifi

2.2 响应数据

响应数据统一格式:code、msg、data。

array类型数据。通过list字段,保证data的Object结构。

分页类型数据。返回总条数,用于判断是否可以加载更多。

// object类型数据
{
    "code":1,
    "msg":"成功",
    "data":{}
}
// array类型数据。
{
    "code":1,
    "msg":"成功",
    "data":{
        "list":[]
    }
}
// 分页类型数据。
{
    "code":1,
    "msg":"成功",
    "data":{
        "list":[]
        "total":"10"
    }
}

列表类数据接口,无论是否要求分页,最好支持分页,pageSize=Integer.Max即可。

2.3 字段类型规范

统一使用String类型。某些情况,统一使用String可以防止解析失败,减少类型转化操作。

Boolean类型,1是0否。客户端处理时,非1都是false。

if("1".equals(isVip)){
    
}else{
    
}

status类型字段,从1+开始,区别Boolean的0和1。“0”有两种含义,(1)Boolean类型的false,(2)默认的status

2.4 上传/下载

上传/下载,参数增加文件md5,用于完整性校验(传输过程可能丢失数据)。

2.5 避免精度丢失

缩小单位保存数据,如:钱以分为单位、距离以米为单位。

3 瘦客户端

客户端尽量不处理逻辑

客户端不处理金额

客户端参数校验规则可以通过接口返回,同时提供默认规则,接口不通则使用默认规则。

4 拓展性

图片文案等,与校验规则类似,通过接口返回,并提供默认。

列表界面

// 静态列表
{
    "name": "张三",
    "sex": "男",
    "age": "20岁",
    "nickName": "小张"
}
// 动态列表
{
    "userInfos":[
    {
        "key":"姓名",
        "value":"张三"
    },{
        "key":"性别",
        "value":"男"
    },{
        "key":"年龄",
        "value":"20岁"
    },{
        "key":"昵称",
        "value":"小张"
    }]
}

多个boolean可以flag替换

{
    "flag":"7" // 二进制:111,三位分别表示三个boolean字段
}

long flag = 7;
System.out.println("bit="+Long.toBinaryString(flag));
System.out.println("第一位="+((flag&1)==1));
System.out.println("第二位="+((flag&2)==1));
System.out.println("第三位="+((flag&4)==1));

5 安全性

so层,不懂

6 兼容性

区分版本

7 性能优化

合并接口。一个页面一个接口

字段简写

无用字段清理

图片裁剪

局部刷新。页面需要的数据,可以用前一个页面带来。

预加载

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值