原则

1、保障数据传输安全
2、提高开发效率(工具或sdk提供)
3、接口透明可控、可测试

需解决问题

1、h5 js与原生调用统一,如何控制安全
2、多种加密方式,无统一规则
3、接口权限控制?

采用方式

数据采用http(s) 传输, 数据返回为json格式;

状态CODE

1
2
3
4
5
6
7
8
9
10
http code:
401 : StatusUnauthorized, 认证失败
500: StatusInternalServerError 内部服务出错
404:NotFind
200:请求成功
10001: 参数为空
10002: 请求不合法(可能求参数被篡改)
10003:参数格式错误
20000:系统错误
......

返回数据信息格式

成功返回 HTTP/1.1 200 OK

1
2
3
4
5
6
{
"status":200,
"message":"success",
"time": 1423276134,
"data":{}
}

失败返回 HTTP/1.1 httpCode 内容为json格式

1
2
3
4
5
{
"status":10001,
"message":"参数为空",
"time": 1423276134
}

## 接口版本请求规则
http://demo.up72.com/api/v1/getUserInfo or http://demo.up72.com/api/v2/getUserInfo

v1 是1.0版本
v2 是2.0版本

每个接口加上http头 Authorization (可选)

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
系统token, 有效30分钟

参数传递

加密方式:

如:param1,param2,param3 三个参数防篡改加密
则:key+param1+param2+param3 加密;
返回数据:json格式数据并进行加密,加密方式和防篡改一直;终端接收到数据后进行解密,得到json数据;

key为系统秘钥;参数根据业务情况自定义;

使用

依赖包:公司框架基础包 upcloud-framework
api demo 点此下载
直接复制api文件夹到 web–>webapp下;api下有相应demo
demo可直接启动,如果使用公司框架,直接复制api到web–>webapp也可使用;

本目录做为终端接口,所有接口放入其下,可分模块存放;

接口为http请求,传输数据为json, 过程中防篡改加密和返回数据加密;具体请参考范例/api/v1/member/do/login.jsp;
服务端开放在线测试地址,统一入口:/api/v1/test.jsp;
规范:在其页面中加入各个模块的测试地址及接口
如果接口复杂,请把必要说明输出到页面上, 以便终端调试;

本文地址: http://blog.up72.cn/2016/09/12/server+client API/