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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]Java
[modifica | modifica wikitesto]Esistono vari strumenti per generare codice Java da una descrizione WADL esistente (o viceversa):[4][5]
Note
[modifica | modifica wikitesto]- ^ 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
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- (EN) WADL home page, su java.net.
- (EN) Specifica corrente di WADL (PDF), su java.net. URL consultato il 5 maggio 2019 (archiviato dall'url originale il 21 settembre 2016).