WSDL是一个W3C标准,是一种Web服务描述语言,它通常被用来描述SOAP服务器提供的服务的详情。虽然WSDL具有灵活的服务绑定选项(例如,服务可以通过SMTP邮件服务器提供),但是它原先并没有支持GET和POST等 HTTP操作,而由于REST服务经常使用HTTP动词(如PUT和DELETE),因此WSDL不是一个记录REST服务的好选择。
在2.0中,WSDL支持几乎所有的HTTP动词,因此它现在被认为是一个记录REST服务的可接受的方法。
第二个选择是WADL,中文名称是“Web应用描述语言”。 WADL的是由Sun Microsystems公司倡导的。像REST一样,WADL的也是轻量级的,比WSDL容易理解和容易编写。在某些方面,它不像WSDL灵活(不绑定SMTP服务器),但它对任何REST服务都足够了,而且动词也少得多。
正如你可以看到,大多是不言自明的格式,它通过使用XML schema这种类型类型安全的好东西丰富了REST。
整个文件大约只有10行,要长于这个片段(包括XML命名空间规格,导入架构语法等),而且从其中可以发现WADL规范。
另一个现实世界的WADL文件,可以查看CSS验证服务规范的W3C独角兽项目。
然而,一些REST的倡导者,认为即使在轻量级的WADL也有点多余。而事实上,大多数REST服务的记录并不比文字描述(人类可读的HTML文件)多。
在2.0中,WSDL支持几乎所有的HTTP动词,因此它现在被认为是一个记录REST服务的可接受的方法。
第二个选择是WADL,中文名称是“Web应用描述语言”。 WADL的是由Sun Microsystems公司倡导的。像REST一样,WADL的也是轻量级的,比WSDL容易理解和容易编写。在某些方面,它不像WSDL灵活(不绑定SMTP服务器),但它对任何REST服务都足够了,而且动词也少得多。
这里是一个WADL规范的片段,描述了亚马逊的“项目搜索”服务:
<method name="GET" id="ItemSearch">
<request>
<param name="Service" style="query"
fixed="AWSECommerceService"/>
<param name="Version" style="query" fixed="2005-07-26"/>
<param name="Operation" style="query" fixed="ItemSearch"/>
<param name="SubscriptionId" style="query"
type="xsd:string" required="true"/>
<param name="SearchIndex" style="query"
type="aws:SearchIndexType" required="true">
<option value="Books"/>
<option value="DVD"/>
<option value="Music"/>
</param>
<param name="Keywords" style="query"
type="aws:KeywordList" required="true"/>
<param name="ResponseGroup" style="query"
type="aws:ResponseGroupType" repeating="true">
<option value="Small"/>
<option value="Medium"/>
<option value="Large"/>
<option value="Images"/>
</param>
</request>
<response>
<representation mediaType="text/xml"
element="aws:ItemSearchResponse"/>
</response>
</method>
正如你可以看到,大多是不言自明的格式,它通过使用XML schema这种类型类型安全的好东西丰富了REST。
整个文件大约只有10行,要长于这个片段(包括XML命名空间规格,导入架构语法等),而且从其中可以发现WADL规范。
另一个现实世界的WADL文件,可以查看CSS验证服务规范的W3C独角兽项目。
然而,一些REST的倡导者,认为即使在轻量级的WADL也有点多余。而事实上,大多数REST服务的记录并不比文字描述(人类可读的HTML文件)多。