这三个都可以用作REST API描述符。有什么区别?我知道这是一个激烈的问题,但我只想进行比较,而不是火焰战:P
答案 0 :(得分:37)
WADL是描述基于HTTP的Web应用程序(通常是REST Web服务)的标准。因此,WADL可以被视为WSDL 1.1的REST等价物。
WSDL 2.0可用于描述REST Web服务,因此可与WADL竞争。但它的范围更广。
引用Eran Hammer-Lahav的this blog帖子(经常为OAuth,Discovery,XRD和其他新兴社区驱动的规范和标准做出贡献 - 以及雅虎标准制定总监) !):
XRD是一种简单的通用格式 描述资源。资源 描述符文档提供 机器可读的信息 资源(资源元数据) 促进互操作性的目的, 并协助与未知的互动 支持已知的资源 接口
例如,关于网页的网页 即将召开的会议可以提供 描述符文档的位置 会议组织者的空闲/忙碌 有可能协商的信息 不同的时间。一个描述符 社交网络资料页面可以 识别用户的位置 地址簿以及帐户 其他网站。一个Web服务 实现API协议可以 宣传协议的哪一个 支持可选组件。
因此,虽然WSDL 2.0与WADL竞争 REST Web服务描述语言(WDL 2.0有更多但暂时忘记了),XRD是元数据发现格式对于任何URI(OpenID发现是主要用例之一)。 XRD(其根源于Identity社区)看起来不同。
答案 1 :(得分:14)
根据M. Elkstein博士的REST tutorial,
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服务,而且不那么详细。