Web Application Description Language
Web Application Description Language (WADL) es una descripción XML legible por máquina de aplicaciones web basadas en HTTP (normalmente servicios web REST).[1] WADL modela los recursos proporcionados por un servicio y las relaciones entre ellos.[1] WADL está diseñado para simplificar la reutilización de servicios web basados en la arquitectura HTTP existente de la web.[1][2] Es independiente de la plataforma y del lenguaje y tiene como objetivo promover la reutilización de aplicaciones más allá del uso básico en un navegador web.[1]
WADL fue presentado al World Wide Web Consortium por Sun Microsystems el 31 de agosto de 2009,[1] pero el consorcio no tiene planes actualmente para estandarizarlo.[2] WADL es el equivalente de REST al Web Services Description Language (WSDL) de SOAP, que también puede ser usado para describir servicios web REST.[3]
Formato
El servicio es descrito mediante un conjunto de elementos resource (recursos). Cada recurso contiene elementos param para describir las entradas y elementos method que describen la solicitud, request, y respuesta, response, de un recurso. El elemento request especifica cómo representar la entrada, qué tipos son requeridos y las cabeceras HTTP específicas que son requeridas. El elemento response describe la representación de la respuesta del servicio, así como cualquier información de fallos, para hacer frente a errores.
Ejemplo
El siguiente listado muestra un ejemplo de una descripción WADL para la aplicación Yahoo News Search.
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wadl.dev.java.net/2009/02 wadl.xsd"
xmlns:tns="urn:yahoo:yn"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:yn="urn:yahoo:yn"
xmlns:ya="urn:yahoo:api"
xmlns="http://wadl.dev.java.net/2009/02">
<grammars>
<include
href="NewsSearchResponse.xsd"/>
<include
href="Error.xsd"/>
</grammars>
<resources base="http://api.search.yahoo.com/NewsSearchService/V1/">
<resource path="newsSearch">
<method name="GET" id="search">
<request>
<param name="appid" type="xsd:string"
style="query" required="true"/>
<param name="query" type="xsd:string"
style="query" required="true"/>
<param name="type" style="query" default="all">
<option value="all"/>
<option value="any"/>
<option value="phrase"/>
</param>
<param name="results" style="query" type="xsd:int" default="10"/>
<param name="start" style="query" type="xsd:int" default="1"/>
<param name="sort" style="query" default="rank">
<option value="rank"/>
<option value="date"/>
</param>
<param name="language" style="query" type="xsd:string"/>
</request>
<response status="200">
<representation mediaType="application/xml"
element="yn:ResultSet"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="ya:Error"/>
</response>
</method>
</resource>
</resources>
</application>
Generar WADL o generar código a partir de WADL
Java
Existen diversas herramientas para generar código Java a partir de un WADL existente:[4][5]
- Apache CXF
- Java API for RESTful Web Services, y su implementación de referencia, Jersey
Referencias
- ↑ a b c d e Sun Microsystems (31 de agosto de 2009). «Web Application Description Language: W3C Member Submission 31 August 2009». World Wide Web Consortium. Consultado el 12 de agosto de 2012.
- ↑ a b World Wide Web Consortium (14 de octubre de 2009). «Team Comment on the "Web Application Description Language" Submission». World Wide Web Consortium. Consultado el 12 de agosto de 2012.
- ↑ Lawrence Mandel (29 de mayo de 2008). «Describe REST Web services with WSDL 2.0: A how-to guide». IBM. Consultado el 12 de agosto de 2012.
- ↑ java.net WADL project
- ↑ Apache CXF