Web Application Description Language
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
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
- ^ a b c d (EN) Marc Hadley, Sun Microsystems, Web Application Description Language: W3C Member Submission 31 August 2009, su w3.org, World Wide Web Consortium, 31 agosto 2009. URL consultato il 12 agosto 2012.
- ^ a b (EN) World Wide Web Consortium, Team Comment on the "Web Application Description Language" Submission, su w3.org, World Wide Web Consortium, 14 ottobre 2009. URL consultato il 12 agosto 2012.
- ^ (EN) Lawrence Mandel, Describe REST Web services with WSDL 2.0: A how-to guide, su ibm.com, IBM, 29 maggio 2008. URL consultato il 12 agosto 2012.
- ^ java.net WADL project
- ^ Apache CXF
Voci correlate
- Specifiche OpenAPI
- RAML
Collegamenti esterni
- (EN) WADL home page, su java.net. URL consultato il 14 luglio 2016 (archiviato dall'url originale il 12 aprile 2012).
- (EN) Specifica corrente di WADL (PDF), su java.net. URL consultato il 5 maggio 2019 (archiviato dall'url originale il 21 settembre 2016).
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Computer_n_screen.svg/24px-Computer_n_screen.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/70/Applications-internet.svg/25px-Applications-internet.svg.png)