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]


Referencias

Enlaces externos

Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.