接口设计规范

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 接口设计规范

基本原则

  • 单一职责:一个接口只做一个行为,避免大而全的接口,避免出现根据入参控制接口行为的情况,这种情况需要拆分为多个接口,实现内部可以再进行抽象封装
  • 性能:基于性能考虑,可以基于业务场景封装多个原子接口例如上层需要获取3个以上的接口进行组装数据,可以提供一个封装后的接口,减少性能损耗
  • 事务统一:一个事务内的操作在一个接口内,尽量不要使用分布式事务
  • 通用性:接口要具有一定的通用性,避免频繁的修改

命名和注释规范

  • 接口命名要具有明确业务含义
  • 清晰易懂,避免无意义的英文缩写和拼音
  • 接口的javadoc上必须添加注释
  • 基本命名规范:动作+业务含义
  • create-新增
  • add-添加
  • remove-移除
  • modify-修改
  • query-查询单个接口
  • queryxxxList-查询列表
  • queryxxxPage-分页查询

参数规范

  • 入参使用封装类,不要直接使用基本类型,避免接口后续扩展报错
  • 入参不能使用java基础类型,必须使用包装类型,避免接口升级报错
  • 入参的参数校验通过javax.validation注解实现
  • 出参统一使用ResultDTO,包含code、message和data
  • 出参不能直接返回领域对象,必须定义DTO进行返回,避免后续领域对象变更影响接口

异常规范

  • 接口异常统一拦截返回ResultDTO,避免抛出异常
  • 异常内容必须包含明确的errorCode和errorMsg
  • 异常详细信息返回给客户端

日志规范

  • 对外暴露的接口必须记录请求日志
  • 异常请求必须打印日志
  • 日志包含完整的请求参数、时间、异常详细信息

版本控制

  • 接口升级和修改,需要兼容老版本
  • 老版本接口标识为@Deprecated,在下次变更时及时删除无用接口

稳定性控制

  • 接口需要自我保护,通过限流和熔断避免系统压力较大造成服务报错
  • 幂等设计,对于写接口需要考虑幂等,避免重复数据写入
  • 批量接口设计
  • 提供的批量接口需要评估应用性能,设置合理的最大限制,或者内部拆分为小批量数据处理
  • 在接口注释中说明接口耗时情况,避免客户端耗时设置较短报错
  • 设置合理的限流阈值,避免应用崩溃
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
SQL 前端开发 安全
详细介绍前后端分离必备的接口规范,包括命名规范、参数规范、错误处理规范等
详细介绍前后端分离必备的接口规范,包括命名规范、参数规范、错误处理规范等
2452 1
|
1月前
|
移动开发 编解码 JavaScript
MediaSource 规范
【10月更文挑战第26天】MediaSource 规范是 HTML5 中用于处理媒体流的一项重要技术
|
7月前
|
JSON 前端开发 测试技术
接口设计规范
该文档介绍了需求分析和接口设计的步骤。首先,通过原型文档和PRD理解业务需求,如有必要需与产品经理深入沟通。其次,设计接口时需考虑四要素:请求路径(按模块命名,英文)、请求方式(GET, POST, PUT, DELETE,遵循RESTful风格)、请求参数(路径参数和请求体参数)和响应参数(统一格式,通常包含状态码、消息和数据)。最后,提到了接口测试,推荐使用Postman、Apifox、Swagger或Knife4j等工具进行测试。
209 5
|
7月前
|
XML JSON API
前后端分离的接口设计规范
前后端分离的接口设计规范
|
存储 JSON NoSQL
|
算法 IDE 程序员
代码编写规范
代码编写规范
|
Go 开发工具 git
一文掌握 godoc的使用与规范
一文掌握 godoc的使用与规范
1144 0
|
SQL 负载均衡 Java
怎么设计一个高质量的接口API设计
什么是幂等性?对于同一笔业务交易,不管调用多少次,只会成功处理一次。二、幂等性设计我们转账业务为例,来说明一下这个问题,转账接口一定要做到幂等性,否则会出现重复转账的问题。调用转账接口从A中转100元资金给B,参数中会携带业务流水号biz_no和源账户A,目的账户B,和转账金额100,业务流水号biz_no是唯一的。转账接口实现有以下实现方式。
|
监控 安全 Linux
|
安全 API 开发者
PSCI接口规范(下)
PSCI接口规范(下)