-1

我的代码包含几种不同的 DELETE 方法,其中一种方法带有一个参数,或者至少理想情况下它会带有一个参数。但是,当我通过 CURL 或 Web 客户端发出此请求时,它不起作用。其他 DELETE 请求功能正常,我已经在要传递的参数中进行了硬编码,只是为了查看调用是否有效。我用 PathParam 和 QueryParam 都试过了,但都不管用。这是我使用 PathParams 的方式,我很确定这是正确的,QueryParams 看起来非常相似,所以我也不想发布它。

@DELETE
@Path("/byId/{id}")
public void deleteById(@PathParam("id") String id)

然后对于 QueryParams 基本相同,但显然路径不同

据我了解,许多 RESTful API 会忽略任何带有 DELETE 请求的请求主体,或者将其视为 PUT 或 POST。有没有办法解决?基本上我有一个包含多个对象的数据库,我需要根据唯一标识符删除一个,以由客户端传入。如果没有办法解决这个问题,还有其他方法可以做到吗?

可能我在这里遗漏了一些明显的东西,因为我现在才使用 Jersey 几个星期,到目前为止,我什至从未听说过 RESTful 服务的概念。

4

1 回答 1

0

您可以将信息作为标头、路径参数、查询参数或消息正文发送到 RESTful 服务。

如果所有值都按预期通过,则 jax-rs/jersey 没有问题。现在您需要调试代码并修复您的实现。jax-rs 只会将 DELETE 调用与您已实现的 DELETE http 方法匹配。

然后,您有责任在方法中实际执行资源的 DELETE 操作。如果您不删除或在方法中执行其他操作,jax-rs 或 jersey 不会抱怨。

于 2013-07-25T17:59:40.057 回答