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 :

  1. Créer une classe de type « com.sun.jersey.api.wadl.config.WadlGeneratorConfig »
  2. 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 😉

Leave a Reply