互联网微服务API应用编码规范

技术选型:

spring boot(Spring DATA+Spring MVC+slf+jackson), JDK1.8

接口约定

  • 使用RestFul API接口;URL中不要使用动词,如GET,ADD,CREATE等;URL中尽量包含资源唯一标识。参考《互联网开发常识谱–REST》
  • 返回参数分成功和失败等不同类型的数据格式。
  • 成功返回http status200,参数中不要包含的message_code,message等流程控制信息,而是直接对应业务逻辑对象。
  • 业务逻辑失败返回http status 400,返回不同的失败提示信息和失败代码。

异常处理:

  • 如果没有业务逻辑处理,则不要捕获异常,sevice层避免仅为打印日常的try-catch。
  • 在线程边界必须捕获异常输出日志,异常日志输出必须打印堆栈,并打印关键参数。
  • 使用ControllerAdvice拦截所有异常,做http状态转换,失败提示信息和失败代码转换。参考《spring boot 最佳实践(四)–Spring MVC》
  • 如果使用异步线程或者自建线程池,必须在线程发起的入口捕获所有异常,并打印日志。

业务逻辑编码:

  • 业务逻辑代码不能写在controller和DAO中。
  • 基础参数校验在DTO中定义,在controller参数注入时自动校验。参考《spring boot 最佳实践(二)–使用Bean Validation》
  • 避免无意义的service层接口声明,如果一个service只有一个实现就不要抽象出接口。
  • Info及以上禁止输出大对象,但必须打印关键参数。参数使用“{}”占位符而不是用“+”字符串拼接
  • 方法体职责单一,减少嵌套层数,一个方法体不能超过100行。
  • 禁止在service层通过动态拼接sql字符串查询DB,使用JPA的Criteria API。
  • 禁止魔法数字,尽量使用枚举类型替代静态常量。
  • 禁止使用类似Constants的全局常量类,领域对象相关的常量在对象实体类中定义,与业务逻辑相关的常量在对应的service中定义。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值