【发布时间】:2025-11-23 08:20:03
【问题描述】:
我的代码包含几个不同的 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 服务的概念。
【问题讨论】:
-
请将您的代码添加到您的问题中。
-
@Tichodroma 我可以添加的代码并不多,除了我可能如何使用 PathParams 和 QuereyParams(将代码移到问题中)
-
这应该可以。当您说“它不起作用”时,您到底是什么意思?
-
@Thichodroma 它从数据库中删除,它应该根据参数中给出的 id 或 id 删除,我使用路径参数或将它们添加为查询字符串和对象进行调用id 不会从数据库中删除。请求被忽略或参数被忽略我不确定是哪个。就像我说的那样,我尝试将 id 硬编码到方法中,以查看 id 是否正确或代码是否正常运行并且工作正常
-
在访问数据库之前尝试检查
id的值。是idnull?
标签: rest http parameters jersey http-delete