定义DELETE操作时可以使用@QueryParam
吗?如果是,当我需要使用jersey客户端测试它时,java代码将如何显示?我试过像
String result = client.target(url)
.queryParam("id",3)
.request(MediaType.APPLICATION_XML)
.delete(String.class);
但它没有用。
答案 0 :(得分:0)
您可以使用DELETE
(推荐)或@PathParam
@QueryParam
终结点
使用@PathParam (推荐)
端点:url/:id
@DELETE
@Path("{id}")
@Produces(MediaType.APPLICATION_JSON)
public void deletePathParam(@PathParam("id") int id) {
...
}
测试:
@Test
public void testDeletePathParam() {
Response output = target(url+"/3").request().delete();
// asserts
}
使用@QueryParam (糟糕的RESTapi设计)
端点:url?id=:id
@DELETE
@Produces(MediaType.APPLICATION_JSON)
public void deleteQueryParam(@QueryParam("id") int id) {
...
}
测试:
@Test
public void testDeleteQueryParam() {
Response output = target(url).queryParam("id", 3).request().delete();
// asserts
}