JAX-RS 将参数传递给 PUT 请求

JAX-RS passing parameters to a PUT request

我听说在 REST 世界中,建议 POST 创建 一个条目,而 PUT 建议 更新 一个条目。

首先,我想确认此声明。

然后,使用这个假设,假设我有一个创建用户的@POST 方法和一个更新用户的@PUT 方法(使用@QueryParam 传递用户ID)。

POSTPUT 传递参数的正确方法是什么?

@FormParam 适合 @PUT 吗?或者我应该在正文中传递 JSON 吗?

我应该以相同的方式为 @POST@PUT 传递参数还是以不同的方式传递参数?

还是我应该对两者都使用 POST

编辑:这个问题最初展示了一个对我不起作用的例子,但这是因为我的测试工具做错了。它现在可以与 POSTMAN 一起使用。

是的,对于 REST,您通常使用以下内容:

  • 元素列表资源添加元素的方法POST
  • 元素资源的方法PUT完全更新一个元素
  • 元素资源的方法PATCH部分更新元素

由于您必须发送的内容对应于资源的状态,因此您必须在请求正文中提供它。

这两个主体(用于添加和更新)相似但存在一些差异。例如,如果您希望 RESTful 服务自动生成某些字段,则不必提供相应的字段。

以下是示例请求:

POST /contacts
{
    "lastName": "my last name",
    "firstName": "my first name",
}
(corresponding response status code: 201 - Created)

PUT /contacts/contactid
{
    "lastName": "my last name",
    "firstName": "my first name",
}
(corresponding response status code: 204 - No content)

您会注意到 JSON 不是您可以使用的唯一格式。 XML、YAML 等也可以使用。

我认为以下link可以给你一些提示:

希望对你有帮助, 蒂埃里