设计和开发一个接口

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

目录
相关文章
|
5月前
|
JSON 前端开发 API
一文讲清 API 接口的概念、设计和实现
总结 在这个例子中,我们创建了一个简单的Express服务器,并定义了一个/api/auth/login的POST接口来处理登录请求。我们使用body-parser中间件来解析请求体中的JSON数据,并在接口内部进行简单的用户名和密码验证。
|
6月前
|
Java
设计接口的几种方法
设计接口的几种方法
|
5月前
|
开发框架 前端开发 API
使用代码生成工具快速开发应用-结合后端Web API提供接口和前端页面快速生成,实现通用的业务编码规则管理
使用代码生成工具快速开发应用-结合后端Web API提供接口和前端页面快速生成,实现通用的业务编码规则管理
|
8月前
|
安全 前端开发 NoSQL
如果让你设计一个接口,你会考虑哪些问题?
接口设计需关注参数校验、扩展性、幂等性、日志、线程池隔离、异常重试、异步处理、查询优化、限流、安全性、锁粒度和避免长事务。入参与返回值校验确保数据正确性;考虑接口扩展性以适应不同业务需求;幂等设计防止重复操作;关键接口打印日志辅助问题排查;核心接口使用线程池隔离确保稳定性;异常处理中可采用重试机制,注意超时控制;适合异步的场景如用户注册后的通知;并行查询提升性能;限流保护接口,防止过载;配置黑白名单保障安全;适当控制锁粒度提高并发性能;避免长事务影响系统响应。
113 2
|
程序员 C++
论接口的封装能力
论接口的封装能力
54 0
|
测试技术 API 开发工具
量化实盘接口API对接程式开发编写逻辑规则说明
量化实盘接口API对接程式开发编写逻辑规则说明
|
SQL 负载均衡 Java
怎么设计一个高质量的接口API设计
什么是幂等性?对于同一笔业务交易,不管调用多少次,只会成功处理一次。二、幂等性设计我们转账业务为例,来说明一下这个问题,转账接口一定要做到幂等性,否则会出现重复转账的问题。调用转账接口从A中转100元资金给B,参数中会携带业务流水号biz_no和源账户A,目的账户B,和转账金额100,业务流水号biz_no是唯一的。转账接口实现有以下实现方式。
|
运维 前端开发 数据可视化
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(三)
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架
194 1
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(三)
|
数据可视化 JavaScript 前端开发
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(一)
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架
330 0
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(一)
|
数据可视化 测试技术 API
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(二)
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架
217 0
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架(二)