所以我的端点只期望这个模式:
{
A: "number",
B: "number
}
发送者发送:
{
A: "number",
B: "number,
C: "number
}
我该如何处理C
?如果发送者是我的UI怎么办,这意味着UI中有一个bug。
是否有处理这种情况的标准协议?
有些服务会忽略额外的参数,有些会拒绝。
一般的好建议是使用类似JSON Schema的东西来描述您期望的主体,将additionalProperties
设置为false(更好地拒绝意外数据),并在存在验证错误时发出422
错误。
如果使用json模式,可以将额外属性设置为false
{
"properties" {
A: "number",
B: "number"
}
additionalProperties = false`
}
导致验证并拒绝您所描述的额外属性。或者您可以故意忽略额外的数据—如果是您的UI,那么您可能确实想要调查,但如果是其他人使用您的端点,那么您就无法控制。但是设置这个属性会导致json经过一些验证,并为你处理它。