必威体育Betway必威体育官网
当前位置:首页 > IT技术

接口设计规范

时间:2019-10-05 01:15:36来源:IT技术作者:seo实验室小编阅读:90次「手机版」
 

接口设计

文章目录

  • 接口设计规范
    • 1 接口示例
    • 2 基本规范
      • 2.1 公共参数
      • 2.2 响应数据
      • 2.3 字段类型规范
      • 2.4 上传/下载
      • 2.5 避免精度丢失
    • 3 瘦客户端
    • 4 拓展性
    • 5 安全性
    • 6 兼容
    • 7 性能优化

接口设计规范

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

1 接口示例

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

URI 方法
/userinfo GET

请求参数

名称 必填 备注
id 用户id

响应参数

名称 类型 备注
id String 用户id
name String 姓名,例:张三
age String 年龄,例: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 性能优化

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

字段简写

无用字段清理

图片裁剪

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

预加载

相关阅读

打造Android的中文Siri语音助手(一)——小I机器人的接

                      By 何明桂(http://blog.csdn.net/hmg25) 转载请注明出处Iphone4S的Siri让人眼前一亮,网上出现

865主板ATA接口使用技巧

865主板搭载Intel自家的ICH芯片从而集成对 Serial ATA 的支持,而且不必再附加控制芯片,本身南桥ICH5/R就可以完整的实现SATA RAID 0

curl命令调试接口

一.场景再现 大家好,很快就过年了,在这里先祝各位新年快乐,阖家欢乐!现在我们切入主题,在我们平时开发接口完成后,需要上线联调接口,而接

接口测试之发包工具介绍

1、Poster    Poster为Firefox浏览器的一个插件,主要用来模拟发并HTTP请求。随着Chrome浏览器的流行,它也出了chrome版本:Chrome

PreparedStatement接口,prepareStatement方法

1、public interface PreparedStatementextends Statement表示预编译的 SQL 语句的对象。 SQL 语句被预编译并且存储在 Prepared

分享到:

栏目导航

推荐阅读

热门阅读