通常,如果请求主体包含额外的参数,那么在REST请求中失败是一种好习惯吗?

时间:2014-04-24 17:40:46

标签: rest web

e.g。对于以下POST请求

POST: /someListOfObjects/
BODY: {
    correctProperty: 'good value',
    extraProperty: "this property doesn't map to the underlying entity"
}

API应该返回400: Bad Request,还是忽略extraProperty

5 个答案:

答案 0 :(得分:2)

我想正确答案是:取决于

但我绝对会选择在大多数情况下忽略extraProperty。 REST API的优点在于它们非常灵活,您可以使它们前后兼容而不会有太多麻烦。因此,如果您最终限制客户端上的太多事情,那么在不破坏现有客户端的情况下进行更改可能会有点困难。

此外,大多数时候我不会使用 JSON 对象直接发布到我的API。我会使用表单编码,逐个获取参数。

答案 1 :(得分:1)

我不认为他们在社区定居。我个人的偏好是返回错误代码。无论您做什么,都要在整个API中保持一致。

答案 2 :(得分:1)

我使用了几个因素来确定我对API的严格程度:

  1. 版本控制 - API是否应该向后/向前兼容?如果是这样,那么忽略额外的属性可能不仅是一个好的决定,它可能是支持版本兼容性的唯一方法之一。

  2. 安全性 - 您的API应该是受信任的服务吗?例如,如果它是一个身份验证API,那么拥有这样一个宽松的输入策略可能没有意义。

答案 3 :(得分:1)

如果我去银行取款,但在我这样做时不断与收银员谈论天气,我还是应该拿到钱。

对于大多数应用程序,可以轻松忽略额外的参数。如果你想编写一个更严格的应用程序,那么在响应有效负载中添加一些额外的东西,向客户提示他们没有完全正确地完成任务。

答案 4 :(得分:0)

樱桃选择你想要的,确保它们安全可靠,如果你不使用它们,就把它们丢掉。