Outil de génération de WADL

y a-t-il un outil qui prend un fichier Java et qui décrit un service REST comme un paramètre et génère un fichier wadl à partir de celui-ci.

15
demandé sur Sven Malvik 2012-02-28 21:31:01

2 réponses

j'ai eu le même problème: j'utilisais RESTeasy et je voulais trouver un moyen de générer le WADL automatiquement.

Fait quelques recherches et est venu à la solution ci-dessous.

1. Ajoutez ceci à votre pom.xml:

<build>
<plugins>
    <plugin>
        <groupId>com.sun.jersey.contribs</groupId>
        <artifactId>maven-wadl-plugin</artifactId>
        <version>1.17</version>
        <executions>
            <execution>
                <id>generate</id>
                <goals>
                    <goal>generate</goal>
                </goals>
                <phase>${javadoc-phase}</phase>
            </execution>
        </executions>
        <configuration>
            <wadlFile>${project.build.outputDirectory}/application.wadl
            </wadlFile>
            <formatWadlFile>true</formatWadlFile>
            <baseUri>http://example.com:8080/rest</baseUri>
            <packagesResourceConfig>
                <param>com.example.rs.resource</param>
            </packagesResourceConfig>
            <wadlGenerators>
                <wadlGeneratorDescription>
                    <className>com.sun.jersey.server.wadl.generators.WadlGeneratorApplicationDoc
                    </className>
                    <properties>
                        <property>
                            <name>applicationDocsFile</name>
                            <value>${basedir}/src/main/doc/application-doc.xml</value>
                        </property>
                    </properties>
                </wadlGeneratorDescription>
                <wadlGeneratorDescription>
                    <className>com.sun.jersey.server.wadl.generators.WadlGeneratorGrammarsSupport
                    </className>
                    <properties>
                        <property>
                            <name>grammarsFile</name>
                            <value>${basedir}/src/main/doc/application-grammars.xml</value>
                        </property>
                    </properties>
                </wadlGeneratorDescription>
            </wadlGenerators>
        </configuration>
    </plugin>
</plugins>
</build>

faites attention à la buildUri et packagesResourceConfig éléments. Vous devez les Modifier pour refléter la configuration de votre projet. Vous pouvez également vouloir modifier la version du plugin (j'ai utilisé 1.17).

2. Créer un dossier doc et en ajouter fichier.

Créer src/main/doc/ et créer les deux fichiers ci-dessous.

Fichier: demande-doc.xml

Contenu:

<?xml version="1.0" encoding="UTF-8"?>
<applicationDocs targetNamespace="http://wadl.dev.java.net/2009/02">
    <doc xml:lang="en" title="A message in the WADL">This is added to the start of the generated application.wadl</doc>
</applicationDocs>

Fichier: demande-grammaires.xml

Contenu:

<?xml version="1.0" encoding="UTF-8" ?>
<grammars xmlns="http://wadl.dev.java.net/2009/02" />

3. Exécutez la commande maven.

Allez dans le dossier du projet et exécutez la commande suivante:

$ mvn compile com.sun.jersey.contribs:maven-wadl-plugin:generate

Les fichiers \target\classes\application.wadl (le WADL lui-même) et \target\classes\xsd0.xsd (le schéma de ressources - il est utilisé par l'application.wadl) doit être généré.

éditez et utilisez-les comme vous le souhaitez.

PS.: Gardez à l'esprit que c'est une utilisation très simple du Maven-WADL-plugin. Il peut faire beaucoup plus. Pour mieux le connaître, reportez-vous au fichier zip mentionné dans l'autre réponse (de Pavel Bucek).

19
répondu acdcjunior 2013-02-07 02:00:37

Oui, veuillez voir gerenate-wadl [1] de l'échantillon à partir de Jersey échantillons (cherchez maven-wadl-plugin).

[1] http://search.maven.org/remotecontent?filepath=com/sun/jersey/samples/generate-wadl/1.12/generate-wadl-1.12-project.zip

3
répondu Pavel Bucek 2012-05-10 11:35:57