接口返回数据结构以及状态码如何定义

数据返回格式

  • 正常返回
    • applicaiton/json格式进行返回数据
    • data具体的业务数据
    • http status code为200
    • traceId为唯一的请求id
  • 业务逻辑异常,为了统一返回的数据结构,统一使用了zalando/problem项目作为返回的数据结构。主要包括:
    • 定义统一的业务异常类,然后统一捕获该异常类,然后转换数据结构。
    • applicaiton/json格式进行返回数据
    • detail为对应的错误信息简单描述
    • code为对应的业务错误码
    • type为异常请求的uri
    • http status code为200
    • traceId为唯一的请求id
  • 请求异常,统一识别异常类型,然后转换数据结构
    • applicaiton/json格式进行返回数据
    • detail为对应的错误信息简单描述
    • code为对应的业务错误码
    • type为异常请求的uri
    • http status code为400、401、403、404、405、406、415
    • traceId为唯一的请求id
  • 非业务异常类,统一处理
    • applicaiton/json格式进行返回数据
    • detail为对应的错误信息简单描述
    • code为对应的错误码
    • type为异常请求的uri
    • http status code为500、501
    • traceId为唯一的请求id

统一异常捕获

  • 通过继承zalando/problem-spring-web项目的ProblemHandling
  • 通过使用@RestControllerAdvice来统一捕获异常
  • 额外定义业务异常类的统一处理方法
  • 通过使用ResponseBodyAdvice接口和@RestControllerAdvice来统一添加traceId和请求的uri
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容