在 Spring Boot 中使用 JsonPatchHandler 处理 PATCH 请求
Posted
技术标签:
【中文标题】在 Spring Boot 中使用 JsonPatchHandler 处理 PATCH 请求【英文标题】:Handling PATCH requests with JsonPatchHandler in Spring Boot 【发布时间】:2016-10-31 03:46:01 【问题描述】:我对 Spring Boot 比较陌生。我正在开发一个简单的用户管理系统,并想用 PATCH 替换我的 PUT 请求。
我在这里读到:Custom Spring MVC HTTP Patch requests with Spring Data Rest functionality。一种简单的方法是将用户的当前状态转换为 JSON,应用 PATCH 查询中的 JSON,然后将其转换为我的用户类。对于第一个和最后一个,我知道如何做 - 使用 ObjectMapper,如下所述:http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/。
但是,我不确定如何应用补丁。我阅读了有关 JsonPatchHandler 的信息,但是没有关于如何使用它的好手册,所以我不知道如何使用它。有人可以解释我如何使用它,或者告诉我另一种处理 PATCH 请求的方法吗?
【问题讨论】:
【参考方案1】:实际上,PATCH 请求有两种类型。第一种类型是 HTTP PATCH 请求,在此处描述:https://www.rfc-editor.org/rfc/rfc5789,在此处描述:http://restcookbook.com/HTTP%20Methods/patch/。我正是需要这些类型的查询并设法使用 Map 来处理它们,如下所述:How to do PATCH properly in strongly typed languages based on Spring - example 在简单的解决方案中。
第二种类型的 PATCH 请求是 JSON 请求。它们有点复杂,在此处进行了描述:https://www.rfc-editor.org/rfc/rfc6902。它们是应该使用 JsonPatch 和我在问题中提出的方法来处理的。
【讨论】:
以上是关于在 Spring Boot 中使用 JsonPatchHandler 处理 PATCH 请求的主要内容,如果未能解决你的问题,请参考以下文章
在 spring-boot 项目中使用 spring mvc xml 项目
Spring boot在Spring boot中Redis的使用
如何在 spring-boot 中禁用 spring-data-mongodb 自动配置
如何在 Spring Boot 中使用 @Transactional 注解