- WSDL 2.0:www.w3.org/TR/wsdl20/
- WADL www.w3.org/Submission/wadl/
- XRD www.oasis-open.org/committees/download.php/35274/xrd-1.0-wd10.html
这三个都可以使用 REST API 描述符。有什么区别?我知道这是一个激烈的问题,但我只是想要一个比较,而不是一场激烈的战争:P
这三个都可以使用 REST API 描述符。有什么区别?我知道这是一个激烈的问题,但我只是想要一个比较,而不是一场激烈的战争:P
WADL 是描述基于 HTTP 的 Web 应用程序的标准,通常是 REST Web 服务。因此,WADL 可以看作是 WSDL 1.1 的 REST 等价物。
WSDL 2.0 可用于描述 REST Web 服务,因此可与 WADL 竞争。但它的范围更广。
引用Eran Hammer-Lahav的这篇博文( OAuth、Discovery、XRD 和其他新兴社区驱动的规范和标准的频繁贡献者,以及Yahoo! 的标准开发总监):
XRD 是一种用于描述资源的简单通用格式。资源描述符文档提供有关资源的机器可读信息(资源元数据),以促进互操作性,并协助与支持已知接口的未知资源进行交互。
例如,关于即将召开的会议的网页可以在其描述符文档中提供会议组织者的忙/闲信息的位置,以潜在地协商不同的时间。社交网络配置文件页面的描述符可以识别用户地址簿的位置以及其他站点上的帐户。实现 API 协议的 Web 服务可以宣传支持协议的哪些可选组件。
因此,虽然 WSDL 2.0 作为REST Web 服务描述语言与 WADL 竞争(WDL 2.0 有更多,但暂时忘记这一点),XRD 是任何 URI 的元数据发现格式(OpenID 发现是主要用例之一)。XRD(起源于 Identity 社区)看起来不同。
根据 M. Elkstein 博士在他的REST 教程中的说法,
WSDL 是 Web 服务描述语言。它通常用于详细说明 SOAP 服务器提供的服务。虽然 WSDL 在服务绑定选项方面很灵活(例如,可以通过 SMTP 邮件服务器提供服务),但它最初不支持除 GET 和 POST 之外的 HTTP 操作。由于 REST 服务经常使用其他 HTTP 动词,例如 PUT 和 DELETE,因此 WSDL 不是记录 REST 服务的糟糕选择。
WADL 是 Web 应用程序描述语言。WADL 由 Sun Microsystems 倡导。与 REST 的其余部分一样,WADL 是轻量级的,比 WSDL 更易于理解和编写。在某些方面,它不如 WSDL(不绑定到 SMTP 服务器)灵活,但对于任何 REST 服务来说已经足够了,而且不那么冗长。