WADL Generation Tool - PullRequest
       18

WADL Generation Tool

15 голосов
/ 28 февраля 2012

Существует ли инструмент, который принимает Java-файл, который описывает службу REST в качестве параметра, и генерирует из этого файл wadl.

Ответы [ 2 ]

20 голосов
/ 07 февраля 2013

У меня была та же проблема: я использовал RESTeasy и хотел найти способ автоматически сгенерировать WADL.

Провел некоторые исследования и пришел к решению ниже.

1. Добавьте это к вашему 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>

Обратите внимание на элементы buildUri и packagesResourceConfig. Вы должны изменить их, чтобы они отражали конфигурацию вашего проекта. Вы также можете изменить версию плагина (я использовал 1.17).

2. Создайте папку / doc и добавьте несколько файлов.

Создайте папку src/main/doc/ и создайте два файла ниже.

Файл: application-doc.xml

Содержание:

<?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>

Файл: application-grammars.xml

Содержание:

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

3. Запустите команду maven.

Перейдите в папку проекта и выполните следующую команду:

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

Должны быть сгенерированы файлы \target\classes\application.wadl (сам WADL) и \target\classes\xsd0.xsd (схема ресурсов - используется application.wadl).

Редактируйте и используйте их по своему желанию.

PS .: Имейте в виду, что это очень простое использование maven-wadl-plugin. Это может сделать намного больше. Чтобы узнать это лучше, обратитесь к zip-файлу, указанному в другом ответе (Павел Бучек).

3 голосов
/ 10 мая 2012

Да, смотрите образец gerenate-wadl [1] из образцов Джерси (ищите плагин maven-wadl).

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

...