e.g。对于以下POST请求
POST: /someListOfObjects/
BODY: {
correctProperty: 'good value',
extraProperty: "this property doesn't map to the underlying entity"
}
API应该返回400: Bad Request
,还是忽略extraProperty
答案 0 :(得分:2)
我想正确答案是:取决于。
但我绝对会选择在大多数情况下忽略extraProperty
。 REST API的优点在于它们非常灵活,您可以使它们前后兼容而不会有太多麻烦。因此,如果您最终限制客户端上的太多事情,那么在不破坏现有客户端的情况下进行更改可能会有点困难。
此外,大多数时候我不会使用 JSON 对象直接发布到我的API。我会使用表单编码,逐个获取参数。
答案 1 :(得分:1)
我不认为他们在社区定居。我个人的偏好是返回错误代码。无论您做什么,都要在整个API中保持一致。
答案 2 :(得分:1)
我使用了几个因素来确定我对API的严格程度:
版本控制 - API是否应该向后/向前兼容?如果是这样,那么忽略额外的属性可能不仅是一个好的决定,它可能是支持版本兼容性的唯一方法之一。
安全性 - 您的API应该是受信任的服务吗?例如,如果它是一个身份验证API,那么拥有这样一个宽松的输入策略可能没有意义。
答案 3 :(得分:1)
如果我去银行取款,但在我这样做时不断与收银员谈论天气,我还是应该拿到钱。
对于大多数应用程序,可以轻松忽略额外的参数。如果你想编写一个更严格的应用程序,那么在响应有效负载中添加一些额外的东西,向客户提示他们没有完全正确地完成任务。
答案 4 :(得分:0)
樱桃选择你想要的,确保它们安全可靠,如果你不使用它们,就把它们丢掉。