Web Application Description Language
De Web Application Description Language (WADL) is een machine leesbare XML beschrijving van HTTP gebaseerde applicaties. WADL was aangemeld bij het World Wide Web Consortium door Sun Microsystems in Augustus 2009, maar het consortium heeft geen plannen het te standaardiseren. WADL is het REST equivalent van of SOAP's Web Services Description Language (WSDL), dat overigens ook gebruikt kan worden om REST services te beschrijven.
In het kader van het EuropeanaConnect project is gewerkt aan een vergelijkbare standaard om het integreren van web applicaties door eindgebruikers mogelijk te maken: SIWA (Schema for the Integration of Web Applications).[1]
Formaat
[bewerken | brontekst bewerken]De service wordt beschreven met behulp van een set resource-elementen. Elke resource bevat param-elementen om de invoer te beschrijven, en method-elementen die de aanvraag en respons van een resource beschrijven. Het request-element specificeert hoe de invoer moet worden weergegeven, welke typen vereist zijn en welke specifieke HTTP-headers vereist zijn. De response beschrijft de weergave van de respons van de service, evenals eventuele foutinformatie, om fouten te verwerken.
Voorbeeld
[bewerken | brontekst bewerken]De volgende lijst toont een voorbeeld van een WADL-beschrijving voor de Yahoo News Search-applicatie.
<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:yn="urn:yahoo:yn" xmlns:ya="urn:yahoo:api"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
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>
Genereer WADL of genereer code vanuit WADL
[bewerken | brontekst bewerken]Er zijn meerdere hulpmiddelen om Java-code te genereren vanuit een bestaande WADL:[2][3]
- Apache CXF
- Java API for RESTful Web Services, alsook zijn referentie implementatie, Jersey[4]
- ↑ Zie de latere JSON versie hiervan. Gearchiveerd op 7 april 2014. Geraadpleegd op 1 april 2014.
- ↑ github WADL project
- ↑ Apache CXF
- ↑ eclipse-ee4j/jersey (6 maart 2025). Geraadpleegd op 9 maart 2025.