您的位置:首页 > 其它

编写API应该考虑那些问题

2016-11-21 22:34 302 查看
编写API应该考虑那些问题
安全机制的设计:动态token、https、对称加密与非对称加密
接口数据的设计:良好的相应速度、跨平台性
接口版本的设计:良好的说明文档、测试程序、接口数据、状态
接口框架
:slim rap文档

优化接口:restful风格
接口版本的切换(迭代设计)
公共接口的安全设计
 

1、考虑接口的跨平台性

     编写的接口要支持Android/iOS ,采用通用的解决方案,通信协议就采用最常用的HTTP协议,如果是即时通信,可以采用开放的XMPP协议,做游戏的可以采用可靠的TCP协议。

2、良好的响应速度

     接口应该以最快的速度将数据返回给请求者,数据量按需分配,APP客户端需要什么数据就返回什么数据。

3、安全问题

解决安全问题主要是保证API的调用者是经过自己授权的App;

保证数据传输的安全。

第一个问题我是采用了动态TOKen的方法,登陆时产生一个token,存入到memcache缓存中,登陆成功后将这个token返回给客户端,下次用户请求时携带新生成的token等一系列参数到服务器端,在服务器端取出memcache中的token,根据前后端约定的规则生成新的token,然后将这两个token进行对比,如果相同则证明是授权的APP。

第二个问题的解决方案,主要就是采用 HTTPS了。HTTPS因为添加了SSL安全协议,自动对请求数据进行了压缩加密,在一定程序可以防止监听、防止劫持、防止重发,主要就是防止中间人攻 击。因此,为了安全考虑,建议对SSL证书进行强校验,包括签名CA是否合法、域名是否匹配、是不是自签名证书、证书是否过期等。

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

4、良好的接口说明文档和测试程序

接口文档要清晰、明了,包含多少个接口,每个接口的地址、参数、请求方式、数据交换格式、参数是否必填、编码格式UTF8,返回值等都要写清楚。

5、接口数据、状态

接口必须提供明确的数据状态信息,不管是成功的,还是失败的,都必须返回给APP客户端。

6、接口、参数命名准确

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

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

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

考虑突然断网或接口信息返回超时异常情况的业务处理(先扣金额更新状态,如有问题自动返回)

7、restful风格

一句话就是:面向资源

使用简单的url和http请求接口来实现接口

用标准的http协议来完成逻辑操作

更安全、简洁

在REST规则中,有两个基础概念:对象、行为
对象就是我们要操作的对象,例如添加用户的操作,那么对象就是user
行为有4种常用的:查看、创建、编辑、删除

rest的提出者很巧妙的利用http现有方法来对应这4种行为:

GET - 查看

POST - 创建

PUT - 编辑

DELETE - 删除

http://baike.baidu.com/link?url=5wmWvmXTDHFJE54mVXJDdO9IfOaDn4QC92Njo7Jmb8SfVqD6nB_krwOzENqize8UWLv1pzcmP1fEkjmv-vjqKK
http://www.cnblogs.com/jifeng/p/5138887.html
8、接口版本的切换

把原来的接口copy一份,然后进行开发,建一个版本的表,前端请求过来的时候携带一个版本号的参数
9、公共接口安全的设计

可以通过检测指定机器ip请求频率就可以解决,如果发现某个ip请求频率很高,可以给它弹出一个验证码或者直接禁止它的请求。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: