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
Enlaces externos
- Página de WADL en java.net
- Especificación actual de WADL
- Datos: Q507339