天天看点

设计和开发一个接口

著作权归作者所有。

商业转载请联系作者获得授权,非商业转载请注明出处。

作者:jeff wong

链接:http://www.zhihu.com/question/29160554/answer/44419486

来源:知乎

设计和开发一个接口,至少要考虑到:

1、功能 2、性能 3、安全 4、易用 5、可扩展 6、可维护 7、可测试 8、可运维 9、协议多样 10、互联互通平台无关。

就说这个登录接口,你至少要考虑到登录渠道,密码存储安全,数据传输安全,试错操作日志,敏感信息是否可记录日志,黑白名单等等。ps:问某一个功能接口还可以凭经验告诉你,你问的是一整个系统的接口,你能给我点咨询费用不?QQ币也是可以的。

最近一段时间一直在做APP接口,总结一下APP接口开发过程中的注意事项: 

1、效率:接口访问速度 

APP有别于WEB服务,对服务器端要求是比较严格的,在移动端有限的带宽条件下,要求接口响应速度要快,所有在开发过程中尽量选择效率高的框架,PHP建议使用YAF框架。 

2、数据格式 

最好使用JSON格式数据,因为JSON有较好的跨平台性。对于 

3、数据量 

按需分配,APP客户端需要什么数据就返回什么数据,过多的数据量影响处理速度,最重要的是影响传输效率。 

4、接口、参数命名准确 

无论是接口还是参数,命名都应该有意义,让人一目了然。 

5、一个页面尽可能就用一个接口 

现在很多的APP页面都有广告、焦点图、文章列表等,对于这些不同格式的数据,不可能都分配一个接口,这样加大了APP请求接口数,影响响应速度。建议服务器端尽可能处理好数据后通过一个接口返回给APP客户端。 

6、缓存 

这点比较重要,不管是文件缓存还是memcache缓存。 

7、接口要有可扩展性 

8、接口安全 

目前一般都是在APP客户端和服务器通过约定的算法,对传递的参数值进行验证匹配。但是如果APP程序被反编译,这些约定的算法就会暴露,特别是在安卓APP中,有了算法,完全就可以通过验证模拟接口请求。

 9、接口版本控制 

对于接口版本控制,自己目前也没有找到一个好的方法,怎么去应对不断的APP版本升级,新、旧接口的处理。 

10、接口数据、状态 

接口必须提供明确的数据状态信息,不管是成功的,还是失败的,都必须返回给APP客户端。 以上10点就是自己在这端时间做APP接口过程中注意的事项,写的有点乱,想到什么就写什么。