想要了解设计REST API的良好实践
如果资源需要部分更新,哪个更好? PUT或PATCH
如果我的理解是正确的,请提供建议
发布 - 以2地址
来保留客户{"custId":"1", "name":"Rocky",
"address":[{"id":"1","zip":"1234"},
{"id":"2","zip":"12345"}]
}
现在更新地址ID 1
的邮政编码PUT - 是否需要将完整的JSON发送到REST API?
{"custId":"1", "name":"Rocky",
"address":[{"id":"1","zip":"9876"},
{"id":"2","zip":"12345"}]
}
PATCH - 可以将部分(或完整)JSON发送到REST API吗?
{"custId":"1", "name":"Rocky",
"address":[{"id":"1","zip":"9876"}]
}
答案 0 :(得分:1)
你的理解似乎基本上是正确的,但你的例子暗示了你思考中可能存在的问题。您正在谈论的文档实际上是一个拥有地址集合的客户。每个地址都可以看作是一个单独的文档,因为它有一个ID。因此,您的api应该允许您更新单个地址而无需更新客户。您的示例中缺少的是资源的URI。因此,您应该使用类似customer/1
的内容来识别客户,并使用类似customer/1/address/1
的内容来识别地址。