api - 内部服务器错误是否应该大张旗鼓地记录?
问题描述
我正在编写一个新的 API 并使用 Swagger/OpenAPI 对其进行记录。记录开发人员可能会遇到的错误响应似乎是一个很好的标准。但我找不到任何有关内部服务器错误的指南或最佳实践。理论上,每条路径都可能引发未处理的异常。我不希望它发生,但它可能会发生。是否所有路径都有状态代码 500“内部服务器错误”的响应,或者我应该只记录开发人员可以做任何事情的响应,即 2xx、3xx 和 4xx?
解决方案
官方文档显示了在该部分中指定所有 5xx 状态码的示例responses
,但没有详细说明特定状态码或返回的消息。它还提到 API 规范应该只包含已知错误:
请注意,API 规范不一定需要涵盖所有可能的 HTTP 响应代码,因为它们可能事先不知道。但是,预计它将涵盖成功的响应和任何已知错误。“已知错误”是指,例如,对于按 ID 返回资源的操作的 404 Not Found 响应,或在操作参数无效的情况下的 400 Bad Request 响应。
您可以遵循相同的方法并像示例中一样指定它。我认为尝试更具体地描述它并不重要,甚至不建议尝试,因为无论如何您可能无法涵盖所有情况,并且客户端不会对内部服务器错误返回的消息采取行动(可能除了稍后重试之外) . 例如,我不建议为它指定消息格式。
省略任何带有 5xx HTTP 错误代码的响应也是有意义的。
推荐阅读
- r - 在 RStudio 中绘制美国地图上的经纬度点时出错
- javascript - 为什么模运算符在 javscript 的 FOR 循环中的工作方式不同?
- node.js - 如何使用 dynamodb 查询操作模拟/单元测试分页?
- rust - 对于模块路径+类型名称,在宏示例中应该使用哪些片段说明符(元变量类型)?
- ios - 我在 SwiftUI 中找到了两种管理视图的方法,但我不知道有什么区别,也不知道哪种方法更好
- r - 具有泊松分布的对数线性模型的偏移项
- python - 关于优化一些嵌套for循环的非常noob Python问题
- python - 网页抓取时如何切换框?
- ruby-on-rails - 我在使用 Rails N + 1 查询时遇到问题。不知道如何包含活动存储以避免 N + 1 查询
- javascript - 将返回的变量从函数中取出并放入 document.write