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 😉