针对不同机制的RESTful语义

时间:2014-09-29 09:38:30

标签: rest

想象一下,我正在创建一个API,允许用户将图像附加到他们的配置文件中,其中图像可能来自正文中的二进制提交,或者是服务器将检索和处理的URL。

假设API期望具有二进制图像数据的PUT

/user/jon/image

添加URl功能时,以下哪项更可取?

A:
PUT to /user/jon/image/url
passing the url in the body

B:
PUT /user/jon/image/
passing in a url in the body and setting a MIME type to advise the host whether or not the content is an image or an URL?

有没有一种处理这种情况的标准方法?我觉得使用MIME类型来指示有效负载在语义上更正确,但是可以发现的更少

由于

1 个答案:

答案 0 :(得分:0)

一旦我遇到同样的问题。我通过首先通过“PUT / user / jon / image /”发布图像然后将带有PUT的URL发布到/ user / jon / image / url来解决它。

问题是,用户发布图片并忘记了网址。我通过在会话中暂时保存图像来解决这个问题,当URL发布时,我同时保存了URL和图像。

问题是,这不是Restful,因为一个安静的服务器没有sesions。但是100%的安抚几乎是不可能的,所以它是你的选择。