rest - 使用 REST 删除 http

标签 rest jersey

我目前正在使用 Jersey 框架(JAX-RS 实现)来构建 RESTful Web 服务。项目中的资源类已经实现了标准的 HTTP 操作 - GET、POST 和 DELETE。我想弄清楚如何从客户端向这些方法发送请求参数。

对于 GET,它将在查询字符串中(使用 @QueryParam 提取),POST 将是名称/值对列表(使用 @FormParam 提取)与请求正文一起发送。我使用 HTTPClient 测试了它们并且工作正常。对于 DELETE 操作,我没有找到有关参数类型/格式的任何决定性答案。 DELETE 操作是否接收查询字符串(使用 @QueryParam 提取)或正文(使用 @FormParam 提取)中的参数?

在网络上的大多数 DELETE 示例中,我观察到 @PathParam 的使用参数提取的注释(这将再次来自查询字符串)。

这是将参数传递给 DELETE 方法的正确方法吗?我只是想在这里小心一点,这样我就不会违反任何 REST 原则。

最佳答案

是的,这取决于您,但是当我了解 REST 意识形态时,DELETE URL 应该删除 GET URL 请求返​​回的内容。例如,如果

GET http://server/app/item/45678

返回 ID 为 45678 的项目,
DELETE http://server/app/item/45678

应该删除它。

因此,我认为使用 PathParam 比使用 QueryParam 更好,因为 QueryParam 可以用来控制某些方面的工作。
DELETE http://server/app/item/45678?wipeData=true

关于rest - 使用 REST 删除 http,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4045484/

相关文章:

java - 在 Dropwizard 服务运行方法中获取主机名

java - 我的 Servlet 和 @FormDataParam Jersey 有问题

java - apache httpclient 内容长度问题

java - URL 对查询路径中的字符 @ 进行编码

java - Jersey - 使用 Get Not Put 重定向,导致重定向循环

jpa-2.0 - 使用 JAXB 进行灵活编码

node.js - 如何使用 REST API 更新 Azure 媒体服务中的现有媒体文件?

java - 带有 Jersey 和 tomcat 错误 : 404 的 Restful Web 服务

rest - JAX-RS/Jersey 中的 HTTP 内容协商冲突?

spring - 如何仅使用注释使用 Spring 配置 Jersey