当前位置: 首页 > news >正文

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

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 异常和超时处理

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

11日志打印

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

12 接口安全性

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

http://www.lryc.cn/news/34470.html

相关文章:

  • 关于Activiti7审批工作流绘画流程图(2)
  • String.format()对日期进行格式化
  • 核酸检测信息管理系统
  • 典型回溯题目 - 全排列(一、二)
  • 数据清洗和特征选择
  • java StringBuilder 和 StringBuffer 万字详解(深度讲解)
  • 【Linux】帮助文档查看方法
  • UEFI 实战(2) HelloWorld 之一 helloworld及.inf文件
  • 向2022年度商界木兰上榜女性致敬!
  • ChatGPT助力校招----面试问题分享(二)
  • JAVA架构与开发(JAVA架构是需要考虑的几个问题)
  • vue 中 v-for 的使用
  • 项目--基于RTSP协议的简易服务器开发(2)
  • ubus编译_环境搭建
  • 移动通信(16)信号检测
  • 数据结构与算法之《顺序表》
  • MySQL索引15连问,抗住!
  • 【服务器管理】手动部署LNMP环境(CentOS 8)(非阿里云版本)
  • 论文笔记:Positive-incentive Noise
  • 340秒语音芯片,轻松实现语音交互,畅享智能生活WTV380语音ic方案
  • 有java基础学习大数据该如何规划
  • 【Java基础】HashMap的底层数据结构是怎样的?
  • MongoDB5副本集高可用集群部署
  • 【Java】最新版本SpringCloudStream整合RocketMQ实现单项目中事件的发布与监听
  • abp.net 5.0 部署IIS10
  • Windows安装Qt与VS2019添加QT插件
  • 自学大数据第5天~hadoop集群搭建(二)
  • MySQL (六)------MySQL的常用函数、 事务(TCL)、DCL用户操作语句、常见环境、编码问题
  • 【3.8】操作系统内存管理、Redis数据结构、哈希表
  • Shell编程:轻松掌握入门级Shell脚本,成为Shell高手