API接口设计 注意问题

  • 时间:
  • 浏览:0
  • 来源:大发UU快3APP—大发UU快三

因为数据很重敏感,都有有助于考虑采用SSL/TLS等加密传输,因为客户端、服务器端约定另有另十个 加密算法和密钥,对来往传输的数据进行加密、解密。如将所有参数加签名算法得到另有另十个 签名验证参数signhttp://hudeyong926.iteye.com/blog/2287954

Element-Version: 1

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

2、良好的响应时延

接口应该以最快的时延将数据返回给请求者,要达到的目标什么都快,另有另十个 页面,秒开最好,超过三秒就需要找找因为了。数据量按需分配,APP客户端需要哪十几个 数据就返回哪十几个 数据,过多的数据量影响解决时延,最重要的是影响传输时延

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

次责版本的修改是通过客户在API调用时发起请求的HTTP头部做指定的头部的版本元素看起来是另另有另十个 的:

主版本更新都有有助于把版本号装到去API的URL中/api-v2来指出所使用的API版本

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

接口文档要清晰、明了,蕴含十几个 个接口,每个接口的地址、参数、请求土法律最好的办法、数据交换格式、参数与非 必填、编码格式UTF8,返回值等都是写清楚

接口测试守护程序,有条件语录,也都有有助于提供,方便前后端的调试

第十个 问题的解决方案,主要什么都采用 HTTPS了。HTTPS因为加进去去了SSL安全协议,自动对请求数据进行了压缩加密,在一定守护程序都有有助于解决监听、解决劫持、解决重发,主要什么都解决底下人攻击。或者 ,为了安全考虑,建议对SSL证书进行强校验,包括签名CA与非 合法、域名与非 匹配、是都是自签名证书、证书与非 过期等。

第另有另十个 问题的解决方案,我主要采用设计签名的土法律最好的办法。对每个客户端分别分配另有另十个 AppKey和AppSecret。需要调用API时,将AppKey加入请求参数列表,并将AppSecret和所有参数一齐,根据五种 签名算法生成另有另十个 签名字符串,或者 调用API时把该签名字符串也一齐带上。服务端收到请求随后,根据请求中的AppKey查询相应的AppSecret,按照同样的签名算法,也生成另有另十个 签名字符串,当服务端生成的签名和请求带过来的签名一致的随后,那就表示五种 请求的调用者是经过被委托人授权的,证明五种 请求是安全的。或者 ,每个端都是另有另十个 Key,也方便不同端的标识和统计。为了解决AppSecret被别人获取,五种 AppSecret一般写死在代码底下。另外,签名算法也需要有一定的繁复度,只能轻易被别人破解,最好是采用被委托人规 定的一套签名算法,而都是采用内部内部结构公开的签名算法。另外,在参数列表中加进去去入另有另十个 时间戳,还都有有助于解决次责重放攻击。

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

采用通用的解决方案,比如通信协议就采用最常用的HTTP协议,因为是即时通信,都有有助于采用开放的XMPP协议,做游戏的都有有助于采用可靠的TCP协议,除非TCP过高 用了,再采用定制的UDP协议。

数据交换采用xml因为json格式因为webservice等等。总之,要达到的目标什么都让不同的端有有助于很方便的使用你的接口。

显式用户指的是,APP守护程序蕴含用户系统,另有另十个 username、password正确的合法用户,称之为显式的用户,

通常显式用户都需要注册,登录之可不能能完成一些被委托人相关的操作。

隐式用户指的是,APP守护程序五种 就只能 用户系统,因为另有另十个 在只能 登录的情况报告下,使用.我.我APP的用户。

在五种 情况报告下,都有有助于通过客户端生成的UDID来标识另有另十个 用户。

有了用户信息,.我.我就有有助于了解不同用户的使用习惯,而不仅仅是全体用户的另有另十个 整体的统计信息,

有了哪十几个 个体的信息随后,就都有有助于做一些用户分群、个性化推荐同类的事情。

表单类接口解决重复提交:调用过的接口sign存起来,检查sign与非 存在

8、隐式用户与显式用户

在做PC端网站的随后,.我.我前会给.我.我的网站加进去去个统计功能,要么被委托人写统计系统,要么使用第三方的比如GA

10、良好的接口说明文档和测试守护程序

考虑无缘无故断网或接口信息返回超时异常情况报告的业务解决(先扣金额更新情况报告,如有问题自动返回)

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

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

 5、通用的数据交换格式

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

11、版本的维护

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

增加功能还好说, 因为是接口需要修改,只能 就面临着同另有另十个 接口要一齐为不同版本的客户端服务的问题。

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

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

因为.我.我.我说出哪类app比较好,因为还不大好说,或者 因为.我.我.我说出哪十几个 app很差,.我.我肯定会说出哪十几个 体积很大、占用内存多、界面很卡、费电的app 不好。对于网络情况报告,接口应该具备为不同的网络提供不同的内容的能力因为.我.我有有助于知道用户的网络情况报告,只能在wifi的情况报告下才给用户传输封面图、缩略图 同类的,

是都是都有有助于帮用户节省什么都流量呢

目前,对于接口和客户端的数据交换格式,基本上什么都五种 ,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",那问题就来了,我遇到的因为五种 错误的转换因为的守护程序奔溃因为好十几个 了,第一次的随后,查了一整天才定位到问题所在

支付宝

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

1、跨平台性

设计API第另有另十个 需要考虑的是API的安全机制。我负责的上另有另十个 项目,因为API的安全问题,就被人攻击了两次。随后经过分析,主要存在另有另十个 漏洞: 一是因 为缺少对调用者进行安全验证的土法律最好的办法,二是因为数据传输过高 安全。只能 ,制定API的安全机制,主要什么都为了解决这另有另十个 问题:

移 动端接口API则需要.我.我被委托人实现统计功能,这时就需要.我.我尽因为多的下发客户端的信息,除了传统的IP、User-Agent之外,还应该下发一些移动 相关的信息,比如手机操作系统,是android还是ios,都是哪十几个 版本,用户使用的网络情况报告,是2G、3G、4G还是WIFI。客户端APP是哪十几个 版 本信息。

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

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

9、安全问题

6、接口统计功能

13、接口、参数命名准确。 无论是接口还是参数,命名都应该有意义,让我一目了然。接口调试技巧前提需要装到去外网上

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

在移动开发中,因为客户端的修改会很费时费力,特 别是IOS应用需要经过Apple审核,另外,当前IOS开发人员、Android开发人员的人工成本普遍较高,人才紧缺,基于这两点,能在服务器端实现 的功能就暂且装到去客户端,毕竟服务器端守护程序的修改要比客户端方便、灵活、快捷的多。