Как сгенерировать Java-клиент для Jira WADL?

все

Я попытался сгенерировать Java-клиент из дескриптора Jira wadl, но это не работает: java.lang.IllegalStateException: ожидается один элемент ресурсов WADL

Используемый файл WADL: https://docs.atlassian.com/jira/REST/7.0.4/jira-rest-plugin.wadl

Используемая сборка:

  <build>
        <plugins>
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-wadl2java-plugin</artifactId>
                <version>3.1.9</version>
                <executions>
                    <execution>
                        <id>generate-sources</id>
                        <phase>generate-sources</phase>
                        <configuration>
                            <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
                            <wadlOptions>
                                <wadlOption>
                                    <wadl>${basedir}/src/main/resources/jira-rest-plugin.wadl</wadl>
                                    <impl>true</impl>

                                    <packagename>com.mycompany.jira</packagename>
                                    <schemaPackagenames>
                                       <schemaPackagename>http://mycompany=com.mycompany.jira.schema</schemaPackagename>
                                    </schemaPackagenames>

                                </wadlOption>
                            </wadlOptions>
                        </configuration>
                        <goals>
                            <goal>wadl2java</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

У меня была надежда, что они исправили свой WADL в 7.x...

Кто-нибудь заставил это работать?


person BTakacs    schedule 19.01.2017    source источник


Ответы (2)


Это не похоже на действительный файл WADL, он объясняет отдельные услуги с вводом, формат ввода. Для работы плагина wadl2java вам потребуется файл WADL с синтаксисом, подобным показанному ниже.

<application xmlns="http://research.sun.com/wadl/2006/10">
    <doc xmlns:jersey="http://jersey.dev.java.net/" 
            jersey:generatedBy="Jersey: 1.0-ea-SNAPSHOT 10/02/2008 12:17 PM"/>
    <resources base="http://localhost:9998/storage/">
        <resource path="/containers">
            <method name="GET" id="getContainers">
                <response>
                    <representation mediaType="application/xml"/>
                </response>
            </method>
            <!-- Next methods ->
        </resource>
     </resources>
  </application>

Я думаю, единственный способ для вас - связаться с atlassian, чтобы предоставить действительный файл WADL, если есть поддержка, иначе вам может понадобиться использовать подход сверху вниз и реализовать синтаксис, как показано в ссылке, которой вы поделились.

person Karthik Prasad    schedule 20.01.2017
comment
Согласно их официальной документации, ЭТО их файл WADL. См. здесь: docs.atlassian.com/jira/REST/ 7.0.4/ - person BTakacs; 20.01.2017
comment
В предоставленной вами ссылке есть документ WADL, содержащий документацию для каждого ресурса в JIRA REST API. Он доступен здесь. Ссылка здесь указывает на docs.atlassian.com/jira /REST/7.0.4/jira-rest-plugin.wadl, который не соответствует синтаксису WADL. - person Karthik Prasad; 20.01.2017
comment
Подводя итог: предоставленный ими так называемый «документ WADL» (docs.atlassian.com/jira/REST/7.0.4/jira-rest-plugin.wadl) на своей странице документации (docs.atlassian.com/jira/REST/7.0.4/) не соответствует стандарту WADL. Он может существовать где-то еще, но вам нужно запросить его. Вам нужен какой-то дополнительный контракт на поддержку/лицензию, чтобы получить это? - person BTakacs; 20.01.2017
comment
Да. Точно, я не думаю, что для этого потребуется дополнительная лицензия. Конечно, вы можете спросить их - person Karthik Prasad; 21.01.2017

Вот некоторая дополнительная информация: 1) перейдите к URL-адресу вашей конкретной версии сервера API. например: - https://docs.atlassian.com/software/jira/docs/api/REST/7.12.3/

2) Добавьте «jira-rest-plugin.wadl» в конец и нажмите Enter. Это загрузит wadl для конкретной версии, которую вы хотите.

3) Зарегистрируйтесь бесплатно в Apimatic.io и авторизуйтесь

4) С помощью преобразователя загрузите wadl и укажите выходной формат (Swagger openapi v2.0 или 3.0, или postman и т. д.)

5) Это создаст и загрузит swagger.json

person Vic    schedule 18.10.2019