设计和开发一个接口

简介: 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:jeff wong链接:http://www.zhihu.com/question/29160554/answer/44419486来源:知乎设计和开发一个接口,至少要考虑到: 1、功能 2、性能 3、安全 4、易用 5、可扩展 6、可维护 7、可测试 8、可运维 9、协议多样 10、互联互通平台无关。
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者: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接口过程中注意的事项,写的有点乱,想到什么就写什么。

目录
相关文章
|
30天前
|
设计模式 算法 数据库
C/C++外观模式解析:简化复杂子系统的高效方法
C/C++外观模式解析:简化复杂子系统的高效方法
31 0
|
5月前
|
程序员 C++
论接口的封装能力
论接口的封装能力
24 0
|
8月前
|
缓存 算法 安全
这才叫 API 接口设计!
一家公司的每个系统都会有各种各样的接口,但是大部分公司,特别是传统行业的公司的所谓接口文档更多是当每个系传统的 word 文本格式,这种传统的格式有着人尽皆知的痛点: 1. 维护不及时; 2. 与代码不同步; 3. 归档后“便束之高阁”; 4. 接口文档跟代码没有互动; 5. 文本检索无法建立全局搜索,需要额外借助工具。 为了解决上述的问题,需要建立一套行之有效的接口管理体系,该体系的目标是: 1. 能够进行接口文档管理,作为后续的接口治理的其中一部分; 2. 能作为接口测试的平台,这样能保证接口跟代码是同步的; 3. 支持文本检索。
|
10月前
|
SQL 负载均衡 Java
怎么设计一个高质量的接口API设计
什么是幂等性?对于同一笔业务交易,不管调用多少次,只会成功处理一次。二、幂等性设计我们转账业务为例,来说明一下这个问题,转账接口一定要做到幂等性,否则会出现重复转账的问题。调用转账接口从A中转100元资金给B,参数中会携带业务流水号biz_no和源账户A,目的账户B,和转账金额100,业务流水号biz_no是唯一的。转账接口实现有以下实现方式。
|
运维 前端开发 数据可视化
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(三)
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架
144 1
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(三)
|
数据可视化 JavaScript 前端开发
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(一)
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架
248 0
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(一)
|
数据可视化 测试技术 API
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(二)
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架
169 0
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(二)
|
测试技术
Appium自动化框架从0到1之 公共方法的封装
Appium自动化框架从0到1之 公共方法的封装
90 0
|
Java 关系型数据库 MySQL
【接口自动化】2.快速搭建接口自动化框架
【接口自动化】2.快速搭建接口自动化框架
【接口自动化】2.快速搭建接口自动化框架
|
安全 前端开发 物联网
接口设计篇《怎么设计好的接口?》
这样设计接口【升职加薪】?
354 0