开发接口需要考虑哪些问题?

1 接口名字

user/ user/adduser/xxx
见名知意,调用接口的开发人员和后来接手的开发人员能够根据接口名称大致猜测出接口作用。

2 协议

设计接口时,应明确调用接口的协议,是采用HTTP协议,HTTPS协议还是FTP协议。比如跨语言调用通常使用WebService协议。

3 版本:v1

对于接口的url,应加版本号。
比如高德地图api:
https://webapi.amap.com/maps?v=2.0

4 路径

由于接口获取的是一种资源,所以网址中尽量为名词,而非动词

/api/pruduct/v1.0/
/api/users/v1.0

5 动作

对于restful风格的接口,可以规定动作来表示接口的意图。

  • ​ post:新建 ​
  • put:修改(修改后的全量数据) ​
  • patch:修改(修改哪个,传哪个) ​
  • delete:删除 ​
  • get:查询。

6 接口参数校验

入参出参校验是写程序时必不可少的步骤。设计的接口,必须先校验参数。比如入参是否允许为空,入参长度是否符合预期长度。出参返回的状态可以给予默认值,规定好错误码和异常信息,而不是将异常直接抛给前端或者第三方调用方。

7 可扩展性

如果接口类似打印日志或者记录调用信息等公共接口。除了供当前业务调用外,后续的其他业务或者功能也有可能调用。在设计此类接口的时候,应考虑后续功能的扩展性。

8 接口幂等性

对当前接口的业务功能进行分析,需要考虑是否对业务添加幂等。
具体实现参考如何实现接口幂等性

9 线程池隔离

如果所有业务都共用一个线程池,有些边缘业务出现bug或者阻塞导致线程池阻塞,重要的业务将受到影响。因此进行线程池隔离,重要业务分配多一点的核心线程,更好保护重要业务。

10 异常和超时处理

调用第三方接口,或者分布式远程服务,需要考虑异常处理,接口超时,重试次数。具体如何处理,需要根据实际业务进行具体分析。

扫描二维码关注公众号,回复: 15961613 查看本文章

11日志打印

提供给第三方或者调用第三方接口。
经常会因为调用结果不一致产生问题,打印调用请求参数或返回参数,出现问题时能快速排查。

12 接口安全性

如果接口是对外提供的,需要保证接口的安全性。
使用token机制代替用户名和密码。
对参数中的手机号,身份证号等隐私信息进行加密脱敏处理。

猜你喜欢

转载自blog.csdn.net/lx9876lx/article/details/129403731