我一直在阅读一些关于REST服务的内容,我很想知道更多。
我想知道是否有人可以确认,目前我们有一个wcf网络服务(以.svc结尾),我们有很多客户端访问(即组建linux,max和PC)......
如果我要更改我的服务器以使用REST,那么客户端会破坏吗?
答案 0 :(得分:2)
嗯,这两个世界真的是SOAP与REST。
使用NetTcpBinding,basicHttpBinding,wsHttpBinding等的“普通”WCF服务都使用SOAP - 您的消息嵌入在SOAP信封中并通过线路发送,响应以相同的方式返回。这就是为什么你不能只将浏览器指向WCF服务并获取数据 - 浏览器无法发送和接收SOAP消息。
SOAP的优点:您可以通过WSDL / XSD清楚而严格地定义服务的功能以及发送的数据类型。
REST是一个完全不同的野兽 - 没有更多的SOAP,没有更多的WSDL和XSD,不再创建一个知道正在混洗的数据类型的客户端 - 你只需要有代表资源的URL,你就会得到一些XML - 不是用于描述XML将会是什么的大量系统支持 - 您必须希望REST服务的开发人员提供一些关于可以检索什么以及它的外观的文档。
所以REST是一个完全不同的野兽而不是SOAP,它是使用webHttpBinding
在WCF中实现的。
因此,如果您有现有的“传统”WCF服务和客户端,并且现在将服务切换到REST,那么是 - 100%确定您将打破每个客户端....
马克
答案 1 :(得分:2)
如果更改服务是RESTful格式,那么是......现有客户端必须更改。
如果您 ADD 一个RESTful端点并保留现有端点,那么没有......现有客户端可以继续使用旧端点,直到他们迁移其代码以使用新的RESTful端点。