[英]How to define and test a DELETE operation endpoint using @QueryParam with Jersey?
Can I use @QueryParam
when defining a DELETE operation? 定义DELETE操作时可以使用@QueryParam
吗? If yes, when I need to test it using jersey client, how the java code will look like? 如果是,当我需要使用Jersey客户端进行测试时,java代码将如何显示? I tried something like 我尝试了类似的东西
String result = client.target(url)
.queryParam("id",3)
.request(MediaType.APPLICATION_XML)
.delete(String.class);
But it was not working. 但这没有用。
You can define a DELETE
endpoint using either @PathParam
(recommended) or @QueryParam
您可以使用@PathParam
(推荐)或@QueryParam
定义DELETE
端点。
With @PathParam (recommended) 使用@PathParam (推荐)
Endpoint: url/:id
端点: url/:id
@DELETE
@Path("{id}")
@Produces(MediaType.APPLICATION_JSON)
public void deletePathParam(@PathParam("id") int id) {
...
}
Test: 测试:
@Test
public void testDeletePathParam() {
Response output = target(url+"/3").request().delete();
// asserts
}
With @QueryParam (bad RESTapi design) 使用@QueryParam (不良的RESTapi设计)
Endpoint: url?id=:id
端点: url?id=:id
@DELETE
@Produces(MediaType.APPLICATION_JSON)
public void deleteQueryParam(@QueryParam("id") int id) {
...
}
Test: 测试:
@Test
public void testDeleteQueryParam() {
Response output = target(url).queryParam("id", 3).request().delete();
// asserts
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.