API接口设计 注意问题

  • 时间:
  • 浏览:1
  • 来源:大发彩神8下载最新版—大发快三官网大发彩神

主版本更新都可不能能 把版本号放上API的URL中/api-v2来指出所使用的API版本

采用通用的防止方案,比如通信协议就采用最常用的HTTP协议,之前 是即时通信,都可不能能 采用开放的XMPP协议,做游戏的都可不能能 采用可靠的TCP协议,除非TCP欠缺用了,再采用定制的UDP协议。

数据交换采用xml之前 json格式之前 webservice等等。总之,要达到的目标之前 让不同的端利于很方便的使用你的接口。

接口的安全工作必须马虎,暴力破解啊、SQL Injection啊、伪造请求和数据啊、重复提交啊也要考虑到,

Element-Version: 1

比如,在移动端里,下拉刷新和上拉加载更多是很常见的功能,之前 接口仍然按照传统的web思路,

只提供按页读取搞笑的话,就会造成移动端的额外的数据请求和计算。 这时,接口就应该针对这四种 类型的操作提供额外的支持。

2》在服务端将结果保存成文件在打开文件查看,即日志型调试(或建临时表放上数据库表里

11、版本的维护

随着业务的变化,客户端APP和服务器端API都会存在变化,增加新的功能,修改已有的功能,

增加功能还好说, 之前 是接口必须修改,如此 就面临着同有一好2个 接口要一同为不同版本的客户端服务的问题报告 。

之前 ,服务器端接口也要做好相应的版本维护。

第有一好2个 问题报告 的防止方案,我主要采用设计签名的方法。对每个客户端分别分配有一好2个 AppKey和AppSecret。必须调用API时,将AppKey加入请求参数列表,并将AppSecret和所有参数一同,根据四种 签名算法生成有一好2个 签名字符串,之前 调用API时把该签名字符串也一同带上。服务端收到请求之前 ,根据请求中的AppKey查询相应的AppSecret,按照同样的签名算法,也生成有一好2个 签名字符串,当服务端生成的签名和请求带过来的签名一致的之前 ,那就表示这个请求的调用者是经过此人 授权的,证明这个请求是安全的。之前 ,每个端全是有一好2个 Key,也方便不同端的标识和统计。为了防止AppSecret被别人获取,这个AppSecret一般写死在代码上面。另外,签名算法也必须有一定的复杂性度,必须轻易被别人破解,最好是采用此人 规 定的一套签名算法,而全是采用组织组织结构公开的签名算法。另外,在参数列表中加带入有一好2个 时间戳,还都可不能能 防止累积重放攻击。

考虑总爱断网或接口信息返回超时异常情况汇报的业务防止(先扣金额更新情况汇报,如有问题报告 自动返回)

7、客户端与服务端的肥瘦平衡

第一好2个 问题报告 的防止方案,主要之前 采用 HTTPS了。HTTPS之前 加带了SSL安全协议,自动对请求数据进行了压缩加密,在一定线程都可不能能 防止监听、防止劫持、防止重发,主要之前 防止上面人攻击。之前 ,为了安全考虑,建议对SSL证书进行强校验,包括签名CA是不是合法、域名是不是匹配、是全是自签名证书、证书是不是过期等。

9、安全问题报告

所谓跨平台是指一些人的接口利于够支持不同的终端,比如Android、iOS、windowsphone以及桌面软件、网站等。如:不同的终端每页显示的记录数不同

在移动开发中,之前 客户端的修改会很费时费力,特 别是IOS应用必须经过Apple审核,另外,当前IOS开发人员、Android开发人员的人工成本普遍较高,人才紧缺,基于这两点,能在服务器端实现 的功能就并不放上客户端,毕竟服务器端线程的修改要比客户端方便、灵活、快捷的多。

6、接口统计功能

支付宝

4、考虑移动端的网络情况汇报和耗电量

之前 让一些人说出哪类app比较好,之前 还不大好说,之前 之前 让一些人说出那些app很差,一些人肯定会说出那些体积很大、占用内存多、界面很卡、费电的app 不好。对于网络情况汇报,接口应该具备为不同的网络提供不同的内容的能力之前 一些人利于知道用户的网络情况汇报,必须在wifi的情况汇报下才给用户传输封面图、缩略图 类式的,

是全是都可不能能 帮用户节省一些流量呢

 5、通用的数据交换格式

2、良好的响应下行速度

3、接口要为移动客户端考虑

12、接口数据、情况汇报 接口必须提供明确的数据情况汇报信息,不管是成功的,还是失败的,都必须返回给APP客户端。

之前 数据一阵一阵敏感,都可不能能 考虑采用SSL/TLS等加密传输,之前 客户端、服务器端约定有一好2个 加密算法和密钥,对来往传输的数据进行加密、解密。如将所有参数加签名算法得到有一好2个 签名验证参数signhttp://hudeyong926.iteye.com/blog/2287954

设计API第有一好2个 必须考虑的是API的安全机制。我负责的上有一好2个 项目,之前 API的安全问题报告 ,就被人攻击了两次。之前 经过分析,主要存在有一好2个 漏洞: 一是因 为缺少对调用者进行安全验证的方法,二是之前 数据传输欠缺安全。如此 ,制定API的安全机制,主要之前 为了防止这个好2个 问题报告 :

总结一下API接口开发过程中的注意事项

累积版本的修改是通过客户在API调用时发起请求的HTTP头部做指定的头部的版本元素看起来是原先的:

接口必须直接调用OAuth认证(rsa加密),ip白名单

显式用户指的是,APP线程蕴含用户系统,有一好2个 username、password正确的合法用户,称之为显式的用户,

通常显式用户都必须注册,登录过都可不能能 完成一些此人 相关的操作。

隐式用户指的是,APP线程四种 就如此 用户系统,之前 有一好2个 在如此 登录的情况汇报下,使用一些人APP的用户。

在这个情况汇报下,都可不能能 通过客户端生成的UDID来标识有一好2个 用户。

有了用户信息,一些人就利于了解不同用户的使用习惯,而不仅仅是全体用户的有一好2个 整体的统计信息,

有了那些个体的信息之前 ,就都可不能能 做一些用户分群、个性化推荐类式的事情。

8、隐式用户与显式用户

在做PC端网站的之前 ,一些人都会给一些人的网站加带个统计功能,要么此人 写统计系统,要么使用第三方的比如GA

表单类接口防止重复提交:调用过的接口sign存起来,检查sign是不是存在

10、良好的接口说明文档和测试线程

1、跨平台性

接口文档要清晰、明了,蕴含2个个接口,每个接口的地址、参数、请求方法、数据交换格式、参数是不是必填、编码格式UTF8,返回值等全是写清楚

接口测试线程,有条件搞笑的话,也都可不能能 提供,方便前后端的调试

接口应该以最快的下行速度 将数据返回给请求者,要达到的目标之前 快,有一好2个 页面,秒开最好,超过三秒就必须找找原因分析分析着了。数据量按需分配,APP客户端必须那些数据就返回那些数据,很多的数据量影响防止下行速度 ,最重要的是影响传输下行速度

13、接口、参数命名准确。 无论是接口还是参数,命名都应该有意义,让人一目了然。接口调试技巧前提必须放上外网上

1》服务端return 调试信息,客户端调用并显示结果,

目前,对于接口和客户端的数据交换格式,基本上之前 四种 ,xml和json和webservice,而现在使用json的应该占大多数最麻烦的之前 防止Date类型,之前 JSON四种 如此 Date类型,之前 ,JSON库将Date类型的数据序列化都会转为String。这时,不同环境, 不同平台,以及用不同的JSON解析库,转换后的结果总爱会不同。比如,你在开发机上之前 得到的结果是”2016-1-1 17:11:11”,但放上服务器后结果却变成了“Jan 1,2016 5:11:11 PM” ,客户端进行反序列化时无疑会失败。之前 ,我撤销了所有Date类型,统一采用时间戳表示,就再如此 转化的烦恼了。 另外,接口的开发人员有过完会将一些数据错误地转换为了String,原因分析分析着客户端使用时因类型错误而异常。类式,原先是数字的1,被转成 了"1",客户端做运算时就会出错,或用switch判断时也会出错,或一些无法转换的情况汇报存在时;类式,为空时JSON正确地表示应该是null,但如 果转为了String就变成了"null",那问题报告 就来了,我遇到的之前 这个错误的转换原因分析分析着的线程奔溃之前 好2个了,第一次的之前 ,查了一整天才定位到问题报告 所在

移 动端接口API则必须一些人此人 实现统计功能,这时就必须一些人尽之前 多的挂接客户端的信息,除了传统的IP、User-Agent之外,还应该挂接一些移动 相关的信息,比如手机操作系统,是android还是ios,全是那些版本,用户使用的网络情况汇报,是2G、3G、4G还是WIFI。客户端APP是那些版 本信息。