什么被归类为RESTful Web服务

Wil*_*llF 9 rest web-services

所以我目前有一个调用Web服务来检索数据的应用程序,我在网址上执行基本的HTTP GET,例如www.example.com/service.asmx?param1=1m2=2这会返回一些我解析的xml.

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

我知道有REST和SOAP Web服务,但上面的案例将被归类为简单的HTTP GET Web服务?或者其他的东西?

谢谢,我试图将术语与概念相匹配,请原谅我,如果这有点过于基本.

Dar*_*ler 6

您的问题的直接答案是否定的.

打破你告诉我们的关于你的服务的内容,我将讨论什么是关于你的解决方案的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,但是如果服务符合要求,则无法提供有关服务的足够详细信息.

  • - 如何生成可以非耦合方式回复客户端的宁静Web服务?假设客户能够处理答案; 它不是敦促我们以具体形式构建资源吗? (2认同)
  • - "服务必须遵守许多其他约束才能被视为RESTful" - 我在哪里可以找到这些约束条件? (2认同)

cgp*_*cgp 3

REST 服务是通常符合以下条件的服务:

  • 提供准确描述所请求资源的标识符。
  • 提供按预期行为的服务 GET 请求是幂等的、POST 更新记录、PUT 创建、DELETE 删除
  • 最小化存储在服务器上的状态
  • 一般拆除不必要的复杂性
  • 通过 HTTP(虽然我见过其他实现,但它们肯定不是传统意义上的 RESTful)

您的 URL 不那么“安全”的原因是它包含非识别信息(例如 .ASMX)。另外,有些人认为添加 url 参数只适合过滤。(但这并不意味着使用 URL 参数不是 RESTful!)

如果看起来没有硬性规定的休息规则,那么您就走在正确的道路上。

RESTful 服务通常处理 XML,但无论如何,这也不是硬性规则。