在 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 注解

spring-boot实战09:Spring Boot中使用@Scheduled创建定时任务

在 spring-boot 中使用一个模板引擎渲染多个后缀