【问题标题】:Best API response format in JsonJson 中最好的 API 响应格式
【发布时间】:2022-12-10 15:22:23
【问题描述】:

哪一个最适合 API 响应?

  1. 在这里我用实际数据返回一些元信息。尽管我不确定他们是否需要使用这些元信息。
    {
        "version": "1.0.0",
        "isError": false,
        "statusCode": 200,
        "message": "Permission Object",
        "data": {
            "id": 1,
            "name": "user create",
            "created_at": "2022-11-30T10:18:20.000000Z"
        }
    }
    
    1. 在第二个示例中,我只返回相关数据。
    {
        "id": 1,
        "name": "user create",
        "created_at": "2022-11-30T10:18:20.000000Z"
    }
    

    如果有其他更好的方法,请给我建议。提前致谢。

【问题讨论】:

    标签: json api rest api-design


    【解决方案1】:

    我注意到您使用了 REST 标签,所以我假设您正在考虑 RESTful API 实现并且对 RESTful API 设计有一些了解。

    如果您需要一些最佳实践,我认为其中有几个很有用。 herehere

    看看你的例子,我更喜欢第二种选择,原因是:

    1. IsError 可以通过 HTTP 响应来确定,例如400、500、200、201,所以它是多余的。
    2. StatusMessage 在响应成功时也是多余的,但在错误状态下可能有用,例如在 ASP.NET 中,您可以使用 ProblemDetails 响应(您可以自定义您想要的方式)。
      {
          "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
          "title": "Unable to create a new user due to missing name",
          "status": 400,
          "traceId": "00-0aa7d64ad154a1e1853c413a0def982d-195d3558c90f7876-00"
      }
      
      1. version 是一个有趣的人。通常,它可以包含在请求头或 URL 中。如果 API 无法处理请求的版本,那么它应该在问题详细信息中返回错误。

      因此,我更喜欢第二个选项,并在出现错误时发送问题详细信息响应。

    【讨论】:

      【解决方案2】:

      JSON API 是一种适用于 HTTP 的格式。它描述了客户端应如何从服务器请求或编辑数据,以及服务器应如何响应所述请求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多