Web Application Description Language (WADL) è un linguaggio formale in formato XML utilizzato per la creazione di "documenti" per la descrizione di Web service basati su HTTP.[1] Lo scopo di WADL è quello di semplificare e incoraggiare il riutilizzo di Web service basati su architetture HTTP già esistenti nel Web.[1][2]

WADL è stato presentato all'attenzione del World Wide Web Consortium dalla Sun Microsystems il 31 agosto 2009,[1] ma il W3C non ha tuttora in programma la sua standardizzazione.[2] Il linguaggio è l'equivalente RESTful del Web Services Description Language (WSDL) dei Web service SOAP, il quale può essere utilizzato anche per descrivere servizi REST.[3]

Formato

Il servizio è descritto utilizzando un insieme di elementi resource ("risorsa"). Ciascuna di queste risorse contiene degli elementi method (in cui è possibile specificare il metodo HTTP), i quali a loro volta sono formati da una request e una o più response. L'elemento request specifica com'è rappresentato l'input del metodo, quali sono i tipi di dato richiesti ed eventuali header HTTP richiesti. L'elemento response descrive l'output del Web service, incluse le risposte di errore previste.

Esempio

Riepilogo
Prospettiva

Segue l'esempio di una descrizione WADL per l'applicazione Yahoo News Search, preso dalla submission della Sun Microsystems al W3C.[1]

 <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>

Strumenti

Java

Esistono vari strumenti per generare codice Java da una descrizione WADL esistente (o viceversa):[4][5]

  • Apache CXF
  • Java API for RESTful Web Services

Note

Voci correlate

Collegamenti esterni

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.