我已经开始搜索有关休息的文档,但我并不确定我是否理解它。
我可以在休息时看到它的网址是干净的,例如:
http://host/webservice.asmx?name=xname&type=xtype
如果是REST风格,可能是:
http://host/webservice.asmx/xname/xtype
不是吗?
所以我发现网址更干净,但我找不到任何其他优势。
有人可以告诉我更多吗?
我还有一些问题:
我发现在Ruby-on-Rails上构建的一些应用程序都使用干净的URL,例如:
他们之间有什么关系吗?
网址重写
URL是否重写了实现REST的方法之一?
我们有一些基于ASP.NET的Web服务,有没有办法将其更改为REST架构?
<小时/> <小时/> 的更新:
我已经读过这篇文章(休息给我的妻子),似乎使用http提供的动词(post / get / put / delete)我们可以使用相同的url对资源进行不同的操作http体中的相关数据; 例如,我想创建一个新订单:
POST http://www.store.com/order,
<purchase-order>
<item> ... </item>
</purchase-order>
但我还有一些问题:
1)我们如何在页面中设置http正文?
另一个例子,我想删除一个订单:
删除http://www.store.com/order/1
但是在页面中,网址只是一个链接,
Mabye就像这样:
它是静态的,我们如何告诉浏览器,当它将此url发送到服务器时,它应该使用“删除”方式而不是“获取”?
2)是否会导致服务器端的额外工作?
由于我们可能会向服务器发送带有不同http方法(get / post ...)的相同url,因此服务器可能必须解析http标头和正文以确保用户想要为此执行什么操作url(也许使用'资源'而不是'url'更好,但我不能分辨url和uri之间的区别和资源)?
以相同的网址为例:
http://www.store.com/order/1
如果服务器发现http方法是“get”,他可能知道“哦,这家伙只想获取id为1的订单的信息”,如果方法是“删除”,他知道“哦,这家伙想要删除id为1的订单。”
所以看起来这种方式会将额外的工作从客户端转移到服务器端。
我的意思是在客户端中,url是一样的,它更容易,但对于服务器端来说它需要更多的工作,这是真的吗?
答案 0 :(得分:1)
HTTP本身就是一个REST实现。构建URL的方式与它无关。 REST是一种在每个请求中传递信息的方式,而不是永久打开的连接。