Rest API - 部分更新
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rest API - 部分更新相关的知识,希望对你有一定的参考价值。
我正在设计REST API(使用ASP.NET Web API实现,而不是ASP.NET核心,因为我们现在无法升级它)。
我正在寻找部分更新实体的最佳解决方案。
例如,“Person”实体具有100个属性,而第三方系统只需更新“PersonValidityDate”。
做到这一点的最佳和最简单的解决方案是什么?
我阅读了一些关于PATCH动词的文章,使用JSON补丁或JSON合并补丁,但它看起来有点复杂,并不是每个人都支持......是吗?
我正在寻找一个非常简单的解决方案,任何集成商都可以理解和使用......
你有什么建议? PATCH经常使用吗?
如果我使用POST / PUT并且仅提供更新属性并忽略其他属性,则在反序列化主体时,可空属性将为null。如何明确区分设置为NULL的属性而不提供属性?
答案
根据RFC 5789
扩展超文本传输协议(HTTP)的几个应用程序需要一个功能来进行部分资源修改。现有的HTTP PUT方法仅允许完全替换文档。此提议添加了一个新的HTTP方法PATCH来修改现有的HTTP资源。
因此,您应该使用PATCH请求来部分更新对象,并使用PUT进行完整的对象替换。
并且您不应该在使用空/空字段的补丁请求中使用完整模型,而是使用新模型进行PATCH请求。
您可以查看更多示例here
以上是关于Rest API - 部分更新的主要内容,如果未能解决你的问题,请参考以下文章
如果未找到 ID,则 Mongoose 更新文档或插入新文档(Express REST API)