JAX-RS 将参数传递给 PUT 请求
JAX-RS passing parameters to a PUT request
我听说在 REST 世界中,建议 POST
创建 一个条目,而 PUT
建议 更新 一个条目。
首先,我想确认此声明。
然后,使用这个假设,假设我有一个创建用户的@POST 方法和一个更新用户的@PUT 方法(使用@QueryParam 传递用户ID)。
向 POST
和 PUT
传递参数的正确方法是什么?
@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可以给你一些提示:
希望对你有帮助,
蒂埃里
我听说在 REST 世界中,建议 POST
创建 一个条目,而 PUT
建议 更新 一个条目。
首先,我想确认此声明。
然后,使用这个假设,假设我有一个创建用户的@POST 方法和一个更新用户的@PUT 方法(使用@QueryParam 传递用户ID)。
向 POST
和 PUT
传递参数的正确方法是什么?
@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可以给你一些提示:
希望对你有帮助, 蒂埃里