设计和开发一个接口

简介: 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者: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接口过程中注意的事项,写的有点乱,想到什么就写什么。

目录
相关文章
|
2月前
|
存储 设计模式 Java
为什么我们在程序开发设计中要基于接口而非实现编程?
为什么我们在程序开发设计中要基于接口而非实现编程?
60 1
|
4月前
|
JSON 前端开发 API
一文讲清 API 接口的概念、设计和实现
总结 在这个例子中,我们创建了一个简单的Express服务器,并定义了一个/api/auth/login的POST接口来处理登录请求。我们使用body-parser中间件来解析请求体中的JSON数据,并在接口内部进行简单的用户名和密码验证。
|
5月前
|
Java
设计接口的几种方法
设计接口的几种方法
|
7月前
|
安全 前端开发 NoSQL
如果让你设计一个接口,你会考虑哪些问题?
接口设计需关注参数校验、扩展性、幂等性、日志、线程池隔离、异常重试、异步处理、查询优化、限流、安全性、锁粒度和避免长事务。入参与返回值校验确保数据正确性;考虑接口扩展性以适应不同业务需求;幂等设计防止重复操作;关键接口打印日志辅助问题排查;核心接口使用线程池隔离确保稳定性;异常处理中可采用重试机制,注意超时控制;适合异步的场景如用户注册后的通知;并行查询提升性能;限流保护接口,防止过载;配置黑白名单保障安全;适当控制锁粒度提高并发性能;避免长事务影响系统响应。
|
监控 小程序 Java
《优化接口设计的思路》系列:第五篇—接口发生异常如何统一处理
大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
383 0
《优化接口设计的思路》系列:第五篇—接口发生异常如何统一处理
|
SQL 负载均衡 Java
怎么设计一个高质量的接口API设计
什么是幂等性?对于同一笔业务交易,不管调用多少次,只会成功处理一次。二、幂等性设计我们转账业务为例,来说明一下这个问题,转账接口一定要做到幂等性,否则会出现重复转账的问题。调用转账接口从A中转100元资金给B,参数中会携带业务流水号biz_no和源账户A,目的账户B,和转账金额100,业务流水号biz_no是唯一的。转账接口实现有以下实现方式。
|
数据可视化 JavaScript 前端开发
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(一)
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架
323 0
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(一)
|
数据可视化 测试技术 API
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(二)
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架
211 0
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(二)
|
安全 前端开发 物联网
接口设计篇《怎么设计好的接口?》
这样设计接口【升职加薪】?
421 0
|
SQL 前端开发 测试技术
下一篇
无影云桌面