REST API 的响应是否应该包含 HTTP 结果代码?

霍斯

我正在查看 REST API 的规范,并且设计人员针对错误情况提供了以下响应 json 正文...

{
    "status": "",
    "serviceSpecErrorCode": "",
    "userMessage": "",
    "devMessage": "",
    "moreInfo": ""
}

哪里"status"是 HTTP 响应代码的副本(例如 404)。

这样做是不好的做法吗?这样做有什么理由/好处吗?

编辑 1:我应该提到,这是一个尚未实现的规范。我问的原因更多是为了最佳设计/实践,因为我们现在可以在实施之前改变它。

编辑 2:抱歉,根据一些答案,我还应该提到一件事......该"status"值将与 HTTP 响应代码相同/相同。他们永远不会不同。

卡西莫林

简答

这是多余的。它复制了 HTTP 状态代码本身中可用的信息,从而带来了两者之间不一致的可能性。

如果包含在响应负载中,状态代码应该只是建议性的,并且必须与实际 HTTP 响应中的状态代码相同。

长答案

返回 HTTP API 的问题详细信息时,您可能需要查看RFC 7807

本文档将“问题详细信息”定义为一种在 HTTP 响应中携带机器可读错误详细信息的方式,以避免需要为 HTTP API 定义新的错误响应格式。

根据此类文档,除了其他元素外,问题详细信息对象还可以包含 HTTP 状态代码:

  • status (number):源服务器为此次问题生成的 HTTP 状态代码。

RFC 还声明了以下内容:

status成员(如果存在)仅是建议性的;它传达了为方便消费者而使用的 HTTP 状态代码。生成器必须在实际的 HTTP 响应中使用相同的状态代码,以确保不理解此格式的通用 HTTP 软件仍然正确运行。

status成员复制了 HTTP 状态代码本身中可用的信息,从而带来了两者之间不一致的可能性。它们的相对优先级并不清楚,因为分歧可能表明(例如)中间人在传输中修改了 HTTP 状态代码(例如,通过代理或缓存)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Rest API返回http状态代码

来自分类Dev

REST API最佳HTTP状态响应,用于非法操作

来自分类Dev

REST API-具有多个错误的HTTP状态代码

来自分类Dev

将REST服务的CSRF令牌作为Http响应标头包含在其中是否安全?

来自分类Dev

使用HTTP for REST API:是否可以自动缓存?

来自分类Dev

我怎么知道$ http响应是否来自缓存-Angular

来自分类Dev

在REST API中返回错误的HTTP方法的代码?

来自分类Dev

REST API和HTTP状态代码

来自分类Dev

REST API中搜索的响应状态代码

来自分类Dev

在Spring Rest Service调用期间根据HTTP代码解组响应

来自分类Dev

非2xx状态代码响应是否应包含CORS特定的标头

来自分类Dev

返回HTTP代码200从春天REST API

来自分类Dev

如何模拟rest API的http响应?

来自分类Dev

对于仅包含部分答案的REST响应,我应使用什么HTTP状态代码?

来自分类Dev

检查HTTP POST请求的响应是否为200

来自分类Dev

将用于REST服务的CSRF令牌作为Http响应标头包含是否安全?

来自分类Dev

Rally Rest API代码无法创建新的测试用例结果

来自分类Dev

REST API中对作业结果的适当响应

来自分类Dev

Google Map api“路线”返回的HTTP响应代码:400

来自分类Dev

对于仅验证的API方法,我应该返回什么Http响应代码?

来自分类Dev

解析REST api结果python

来自分类Dev

在Spring Rest Service调用期间根据HTTP代码解组响应

来自分类Dev

Java拦截器来处理REST API响应代码

来自分类Dev

我是否应该对转换大文件的REST API使用HTTP / 2特定功能

来自分类Dev

我可以使用什么Http方法来修改此REST资源,我应该返回什么响应代码?

来自分类Dev

如何使用 HTTP 响应状态代码配置 API 响应缓存?

来自分类Dev

CQRS 中的 HTTP REST 响应

来自分类Dev

RESTful API 设计 - 响应 http 代码

来自分类Dev

REST api 错误响应:是否应该提供信息?

Related 相关文章

  1. 1

    使用Rest API返回http状态代码

  2. 2

    REST API最佳HTTP状态响应,用于非法操作

  3. 3

    REST API-具有多个错误的HTTP状态代码

  4. 4

    将REST服务的CSRF令牌作为Http响应标头包含在其中是否安全?

  5. 5

    使用HTTP for REST API:是否可以自动缓存?

  6. 6

    我怎么知道$ http响应是否来自缓存-Angular

  7. 7

    在REST API中返回错误的HTTP方法的代码?

  8. 8

    REST API和HTTP状态代码

  9. 9

    REST API中搜索的响应状态代码

  10. 10

    在Spring Rest Service调用期间根据HTTP代码解组响应

  11. 11

    非2xx状态代码响应是否应包含CORS特定的标头

  12. 12

    返回HTTP代码200从春天REST API

  13. 13

    如何模拟rest API的http响应?

  14. 14

    对于仅包含部分答案的REST响应,我应使用什么HTTP状态代码?

  15. 15

    检查HTTP POST请求的响应是否为200

  16. 16

    将用于REST服务的CSRF令牌作为Http响应标头包含是否安全?

  17. 17

    Rally Rest API代码无法创建新的测试用例结果

  18. 18

    REST API中对作业结果的适当响应

  19. 19

    Google Map api“路线”返回的HTTP响应代码:400

  20. 20

    对于仅验证的API方法,我应该返回什么Http响应代码?

  21. 21

    解析REST api结果python

  22. 22

    在Spring Rest Service调用期间根据HTTP代码解组响应

  23. 23

    Java拦截器来处理REST API响应代码

  24. 24

    我是否应该对转换大文件的REST API使用HTTP / 2特定功能

  25. 25

    我可以使用什么Http方法来修改此REST资源,我应该返回什么响应代码?

  26. 26

    如何使用 HTTP 响应状态代码配置 API 响应缓存?

  27. 27

    CQRS 中的 HTTP REST 响应

  28. 28

    RESTful API 设计 - 响应 http 代码

  29. 29

    REST api 错误响应:是否应该提供信息?

热门标签

归档