我目前正在使用Jersey Framework(JAX-RS实现)来构建RESTful Web服务.项目中的Resource类已经实现了标准的HTTP操作--GET,POST和DELETE.我试图弄清楚如何从客户端向这些方法发送请求参数.
对于GET,它将在查询字符串(提取使用@QueryParam)中,POST将是@FormParam与请求主体一起发送的名称/值对列表(使用提取).我使用HTTPClient测试它们并且工作正常.对于DELETE操作,我没有找到关于参数类型/格式的任何结论性答案.DELETE操作是否在查询字符串(使用提取@QueryParam)或正文(使用提取)中接收参数@FormParam?
在Web上的大多数DELETE示例中,我观察到使用@PathParam注释进行参数提取(这将再次来自查询字符串).
这是将参数传递给DELETE方法的正确方法吗?我只是想在这里小心,以便我不违反任何REST原则.
tux*_*yer 18
是的,由您决定,但是当我获得REST意识形态时,DELETE URL应该删除由GET URL请求返回的内容.例如,如果
GET http://server/app/item/45678
Run Code Online (Sandbox Code Playgroud)
返回ID为45678的项目,
DELETE http://server/app/item/45678
Run Code Online (Sandbox Code Playgroud)
应该删除它.
因此,我认为使用PathParam比使用QueryParam更好,因为QueryParam可用于控制工作的某些方面.
DELETE http://server/app/item/45678?wipeData=true
Run Code Online (Sandbox Code Playgroud)
@QueryParam将是正确的方法。 @PathParam仅适用于任何 url 参数之前的内容(“?”之后的内容)。并且@FormParam仅适用于提交的具有表单内容类型的 Web 表单。
| 归档时间: |
|
| 查看次数: |
26045 次 |
| 最近记录: |