Web Application Description Language avec Jersey
Le langage de description d’application Web permet, comme son nom l’indique de décrire votre API REST dans un format XML http://www.w3.org/Submission/wadl/ . Cela peut paraître pénible à mettre en oeuvre, car à chaque fois qu’une ressource change, il faut mettre à jour le WADL.
Avec Jersey, l’implémentation de référence de JAX-RS (JSR311) pas de prise de tête, tout est générés automatiquement.
Il suffit de faire deux choses :
- Créer une classe de type « com.sun.jersey.api.wadl.config.WadlGeneratorConfig »
- Passer cette classe en paramètre d’initialisation de votre servlet
public class SchemaGenConfig extends WadlGeneratorConfig {
@Override
public List configure() {
return generator( WadlGeneratorJAXBGrammarGenerator.class).descriptions();
}
}
<servlet>
<servlet-name>
banner
</servlet-name>
<servlet-class>
com.lateralthoughts.commons.web.LateralCommonsServlet
</servlet-class>
<init-param>
<param-name>
com.sun.jersey.config.property.WadlGeneratorConfig
</param-name>
<param-value>
com.lateralthoughts.commons.web.wadl.SchemaGenConfig
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Le WADL est maintenant généré et accessible à cette adresse : http://localhost:port/maservlet/application.wadl
Pour aller plus loin, le wiki d’Oracle : https://wikis.oracle.com/display/Jersey/WADL
Merci à Aurélien Thieriot pour l’astuce 😉