如何为 JAX-RS 提供@PATCH注释?
JAX-RS 具有 HTTP 谓词(如 () 和 ())的注释,但没有注释。如何为 HTTP 谓词设置注释?GET
@GET
POST
@POST
@PATCH
PATCH
如下所示:
@PATCH
public Response someCode() {
// Code to handle the request
}
JAX-RS 具有 HTTP 谓词(如 () 和 ())的注释,但没有注释。如何为 HTTP 谓词设置注释?GET
@GET
POST
@POST
@PATCH
PATCH
如下所示:
@PATCH
public Response someCode() {
// Code to handle the request
}
我在这里得到了答案。
只需要定义一个自定义的 Patch 注释,这意味着您必须使用以下代码编写一个 PATCH.java 文件:
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@HttpMethod("PATCH")
public @interface PATCH {
}
导入包含 PATCH 的包.java然后可以像其他 HTTP 方法注释一样使用它:
@PATCH
@Path("/data/{keyspace}")
@Produces({ "application/json" })
public void patchRow(@PathParam("keyspace") String keyspace, String body)
throws Exception
我用这个@PATCH向我的REST服务发送了一些JSON。
JAX-RS 2.1 将@PATCH
添加到受支持的 HTTP 方法列表中。
使用 Swagger 记录 REST API 时,可以使用包中定义的现有@PATCH
注释。io.swagger.jaxrs
Dropwizard 在包中定义@PATCH
注释。io.dropwizard.jersey
如果上述方法对您不起作用,您可以编写自己的注释:@PATCH
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@HttpMethod("PATCH")
public @interface PATCH { }
@HttpMethod
注释用于将 HTTP 方法的名称与注释相关联,从而创建 JAX-RS 规范所称的资源方法指示符。
你自己的注释在Swagger中应该可以正常工作。@PATCH