【问题标题】:Why aren't there any WS-* standards for REST web services?为什么 REST Web 服务没有任何 WS-* 标准?
【发布时间】:2011-01-01 21:17:06
【问题描述】:

我正在考虑深入研究 REST 类型的 Web 服务,并注意到它没有任何规范 as opposed to SOAP web services

这是为什么呢?

【问题讨论】:

标签: web-services rest soap standards soa


【解决方案1】:

每种语言都使用自己的标准。 根据Wikipedia

与基于 SOAP 的 Web 服务不同,RESTful Web 服务没有“官方”标准。这是因为 REST 是一种架构,不像 SOAP,它是一种协议。

【讨论】:

  • 如果维基百科是准确的就好了! REST 是一种架构风格,而不是架构。样式的核心约束之一是您必须符合统一的界面。这意味着如果您像 99% 的人一样通过 HTTP 进行 REST,那么 HTTP 就是您的规范。
【解决方案2】:

http://www.w3.org/Protocols/rfc2616/rfc2616.html - Http统一接口规范

http://tools.ietf.org/wg/httpbis/ - HTTP 规范的最新修订版

https://datatracker.ietf.org/doc/html/draft-gregorio-uritemplate-04 - URI 模板

https://datatracker.ietf.org/doc/html/draft-nottingham-http-link-header-06 - 链接头和链接关系

http://www.iana.org/assignments/media-types/ - 媒体类型规范的大量链接

这些应该是您在 HTTP 上构建 RESTful 系统所需的所有规范。

是否有您认为缺少的特定 WS-* 规范才能构建为基于 REST 的系统?

【讨论】:

  • @Darrel:谢谢。您刚刚发现了问题。这就是所有的 REST 标准。 SOAP 遵循相同的标准,但建立在这些标准之上。 REST 坚持我们只是坚持使用 HTTP。这还不够,否则我们不会在其他标准上浪费所有时间和金钱。
  • @John 从理论上讲,REST 并不限制您使用 HTTP,但实际上它是目前唯一的主流选项。我认为如果您将 REST 应用于正确的问题域,那么现有的规范就足够了。
  • @Darrel:需要 WS-* 之类的问题域显然是 REST 的错误问题域。
  • @John 我完全同意。为正确的工作选择正确的工具。
  • @Darrel:我同意 REST 系统不需要这些功能,并且确实需要这些功能的系统不应该使用 REST。
【解决方案3】:

嗯,至少对于 Java 来说,有 JAX-RS http://en.wikipedia.org/wiki/JAX-RS,但我不知道这是否基于其他一些标准。

【讨论】:

  • 这不是标准。 “JAX-RS:用于 RESTful Web 服务的 Java API 是一种 Java 编程语言 API”
【解决方案4】:

OData (http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part1-protocol.html) 是 RESTful WebServices 的标准,应该满足您的需求(至少在您使用任何 MS 框架的情况下)。

顺便说一句。如果您想使用标准并使 WebService 尽可能开放和可重用,WADL (http://www.w3.org/Submission/wadl/#x3-40001.3) 与 REST 等效的 WSDL 可能会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2011-03-13
    • 1970-01-01
    相关资源
    最近更新 更多