【问题标题】:What is the best way to return the uniform response for each API in Spring Boot?在 Spring Boot 中为每个 API 返回统一响应的最佳方法是什么?
【发布时间】:2022-01-08 20:50:24
【问题描述】:

我想知道为每个 API 返回统一响应的最佳方式。例如:

如果成功它应该响应:

{
  statusCode: 200,
  message: "customMessage",
  results: [{...}]
}

如果失败它应该响应(例如):

{
  statusCode: 404,
  message: "customMessage",
  results: []
}

使用ResponseBodyAdvice 或更好地创建例如是一个好主意吗? SuccessDTOErrorDTO 并直接从每个控制器方法返回。

如果这是最好的解决方案,我会欢迎 ResponseBodyAdvice 上的一些示例。

【问题讨论】:

  • 你真的需要SuccessDTO吗?只需为此使用 HTTP 状态代码并返回结果。

标签: java spring spring-boot api


【解决方案1】:
  1. 创建 SuccessDTO 并为所有成功场景返回它。

    {
    
      "data": {
        "name": "Ram",
        "id": "101"
      },
      "message": "user has been added",
      "status": 200,
      "timeStamp": "2021-12-02T14:51:35.733+00:00",
      "path": "/api/v1/user/"
    
    }
    

    注意:- 数据字段将包含响应数据

  2. 创建 ErrorDTO 并返回失败/异常情况(最好使用控制器建议)。

    {
        "message":"Not be able to add user"
        "status":400
        "timeStamp":"2021-12-02T14:51:35.733+00:00"
        "path":""/api/v1/user/"
    }
    

    注意:如果出现错误/异常,将没有数据字段。

下面的链接中提供了类似的详细信息。

https://medium.com/codestorm/custom-json-response-with-responseentity-in-spring-boot-b09e87ab1f0a

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 2020-05-16
    • 2021-10-26
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多