gpt4 book ai didi

jax-rs - 如何在 RESTEasy 中实现补丁请求?

转载 作者:行者123 更新时间:2023-12-04 02:07:33 25 4
gpt4 key购买 nike

我想在一个 Patch 请求(json 格式)中实现多个操作。 RESTEasy 不支持开箱即用的补丁请求。如何提供自定义实现?

最佳答案

启用 PATCH你需要定义一个注解 @HttpMethod :

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@HttpMethod("PATCH")
public @interface PATCH {}

Bill Burke 的“RESTful Java with JAX-RS 2.0”一书中描述了一个完整的例子。源代码可以在 resteasy repository 中找到.

也许 JAX-RS 2.1。将 support PATCH out of the box .

更新:如果您想在一个请求中修补多个资源,您需要先识别它们。例如,如果您想为所有具有一定营业额的客户提供 VIP 状态,您可以使用这样的资源方法:

@PATCH
@Path("/customers")
public Response patchCustomers(@QueryParam("minTurnover") Double minTurnover, InputStream is) {
// find and update customers
}

在实体主体中传递哪些信息取决于您。 RFC要求应应用于资源的“一组更改”。这可能很简单 text/plain喜欢 update: vip=true .
此类更新的标准格式是 json-patch :
PATCH /customers?minTurnover=1000 HTTP/1.1
Content-Type: application/json-patch

[
{
"op" : "replace",
"path" : "/vip",
"value" : "true"
},
{
... more operations ...
}
]

请注意,应将同一组操作应用于所有已识别的资源。

关于jax-rs - 如何在 RESTEasy 中实现补丁请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25253899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com