web-services - 什么被归类为 RESTful Web 服务

标签 web-services rest

因此,我目前有一个调用 Web 服务来检索数据的应用程序,我在其中对 URL 执行基本 HTTP GET,例如 www.example.com/service.asmx?param1=1¶m2=2
这会返回一些我解析的 xml。

我的问题是,这是否将其归类为 RESTful Web 服务?我想不,但我想知道是什么使它成为 REST Web 服务?

我知道有 REST 和 SOAP Web 服务,但上述情况会被归类为简单的 HTTP GET Web 服务吗?或者其他的东西?

谢谢,我正在尝试将术语与概念相匹配,如果这有点太初级,请原谅我。

最佳答案

你的问题的直接答案是否定的。

分解您告诉我们的有关您的服务的内容,我将讨论您的解决方案什么是非 RESTful。

HTTP GET on a url like so www.example.com/service.asmx?param1=1&param2=2



您正在使用 HTTP GET,因此正在使用一组有限的动词中的一个来通过 URI 访问某种资源。这是 RESTful 并且符合统一接口(interface)约束,只要服务器不违反任何关于允许 GET 做什么的 HTTP 规则。

查看 URL 本身,您正在访问的资源并不明显,因此它确实暗示您的 URL 空间的结构可能不适合进行 RESTful 设计。但是,REST 对您的 URL 应该是什么样子没有任何限制(尽管很多人认为如此),因此您的 URL 没有什么不符合 RESTful 的。

This returns some xml which I parse.



这是您的问题开始的地方。我在此声明中隐含地阅读的是客户端知道如何从 XML 中解析数据。这违反了 REST 的自描述约束。 http 消息应该包含客户端知道如何处理来自请求的响应所需的所有信息。媒体类型应该告诉客户端 XML 文档中有什么信息。如果您的服务返回 application/xml,那么客户端唯一知道的是文档包含属性和元素。如果客户端使用带外知识来解析该 XML,那么您将在客户端和服务器之间引入耦合。 REST 的主要目标之一是消除这种耦合。

服务必须遵守许多其他约束才能被视为 RESTful,但您没有提供有关您的服务的足够详细信息,无法以一种或另一种方式说明它是否符合要求。

关于web-services - 什么被归类为 RESTful Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1261954/

相关文章:

java - 如何在 JAX-WS Web 服务中返回自定义复杂类型?

java - 创建名称为 'cxf' 的 bean 时出错

java - 如何从 GWT 调用 RESTFUL 服务?

javascript - 从 MySQL 导入 ArangoDB 始终不完整(自己的 Node.js 脚本)

rest - 尝试授权用户并获取 token 时突然出现 Instagram API "SCOPE"问题 - OAuth

c# - Office 365 REST API - Outlook 用户照片

java - 获取带有 Json 响应的请求?

java - SOA 服务组件的想法

java - OSGi ClassNotFoundException WSServletContextListener

c# - 使用 ASP.NET Web API 自定义路由