Web Application Description Language
# 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. Lo scopo di WADL è quello di semplificare e incoraggiare il riutilizzo di Web service basati su architetture HTTP già esistenti nel Web.

WADL è stato presentato all'attenzione del World Wide Web Consortium dalla Sun Microsystems il 31 agosto 2009, ma il W3C non ha tuttora in programma la sua standardizzazione. 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.

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

## Strumenti

### Java

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

* Apache CXF
* Java API for RESTful Web Services
