私有REST API的调用是否返回400或500无关紧要?

问题描述 投票:1回答:1

我们有一个私有的REST API,该API已被锁定,并且只能由我们控制的软件调用,而不能由公众调用。许多端点采用JSON有效负载。如果反序列化JSON有效负载失败(例如,有效负载的int预期为Guid,则抛出该异常,并且API返回500 Internal Server Error)。从技术上讲,在这种情况下,它应该返回400 Bad Request。

在这种情况下,不知道需要多少努力才能确保返回400,将API更改为返回400有好处吗?调用软件和QA是唯一看到此错误的实体,并且仅当软件发送的数据与预期模型不匹配时才会发生此错误,这无论如何都是一个严重缺陷。我认为这是多余的工作和维护,没有任何收益。

我是否在这里遗漏了一些东西,认为400和500之间的区别会大大帮助?

rest http-status-codes
1个回答
1
投票

如果您要遵循严格的REST原则,则应该返回4xx,因为问题出在发送数据而不是服务器程序上]

    5xx保留用于服务器错误。例如,如果服务器由于站点中断或软件缺陷而无法执行该方法。 5xx范围状态代码不应用于验证或逻辑错误处理。
  1. 从技术角度:
  • 如果明天其他程序员/团队将解决此问题,则报告的错误不会传达有用的信息

      如果明天您必须将错误记录在中央错误日志中,您将对其进行污染,将导致错误的状态代码
  • 因此,如果质量检查人员决定针对错误运行报告/指标,那么它们将是错误的
  • 您可能会增加技术债务,这可能会影响您将来的生产率。 link
  • 至少您可以做的是记录此问题,或者使用JIRA之类的工具创建票证。
  • © www.soinside.com 2019 - 2024. All rights reserved.