所以我目前有一个调用Web服务来检索数据的应用程序,我在网址上执行基本的HTTP GET,例如www.example.com/service.asmx?param1=1m2=2这会返回一些我解析的xml.
我的问题是,这是否将其归类为RESTful Web服务?我在想不,但我想知道什么使它成为REST网络服务?
我知道有REST和SOAP Web服务,但上面的案例将被归类为简单的HTTP GET Web服务?或者其他的东西?
谢谢,我试图将术语与概念相匹配,请原谅我,如果这有点过于基本.
您的问题的直接答案是否定的.
打破你告诉我们的关于你的服务的内容,我将讨论什么是关于你的解决方案的RESTful.
HTTP上的HTTP GET,如www.example.com/service.asmx?param1=1m2=2
您正在使用HTTP GET,因此使用一组有限的动词来通过URI访问某种资源.这是RESTful并且符合统一接口约束,只要服务器不违反任何关于允许GET执行的HTTP规则.
查看URL本身,您访问的资源并不明显,因此它暗示您的URL空间可能不会以便于执行RESTful设计的方式构建.但是,REST并没有对你的URL应该是什么样的限制(尽管很多人都认为太多了),所以你的URL没有任何不满.
这将返回一些我解析的xml.
这是你的问题开始的地方.我在本声明中隐含地阅读的是客户端知道如何从XML中解析数据.这违反了REST的自我描述性约束.http消息应包含客户端知道如何处理请求响应所需的所有信息.media-type应该告诉客户端XML文档中有哪些信息.如果您的服务返回application/xml,那么客户端唯一知道的是该文档包含属性和元素.如果客户端使用带外知识来解析该XML,那么您将引入客户端和服务器之间的耦合.REST的主要目标之一是消除这种耦合.
服务必须遵守许多其他约束才能被视为RESTful,但是如果服务符合要求,则无法提供有关服务的足够详细信息.