2013-08-08 4 views
2

Я очень новичок в Swagger, поэтому у меня могут быть некоторые из этих деталей. Swagger кажется отличным инструментом для создания документации REST. Но мне не нравится, что он очень инвазивный и требует, чтобы я добавлял аннотации в свои классы java. Я нашел этот плагин maven с именем swagger-jaxrs-doclet, который, похоже, сгенерировал эти json-файлы, которые я должен был бы передать в swagger для создания документации swagger. Преимущество в том, что мне не нужно размещать аннотации swagger на любом из моих классов.Как использовать вывод swagger-jaxrs-doclet для генерации документации swagger?

К сожалению, документация swagger-jaxrs-doclet не говорит мне, что делать дальше. Может ли кто-нибудь показать мне, как вывести выход из swagger-jaxrs-doclet и создать из него документацию по чаргу? Мне нужно сделать это в maven.

+0

-> Daniel: Вы могли получить решение этого, потому что мне тоже точно нужно то же самое. – chaosguru

ответ

1

Просто загрузите apidocs или папку dist (основываясь на том, какую версию swagger-ui вы используете) на каком-то локальном сервере и открываете из своего браузера. Javascript выполняется, и вы увидите результат.

0

Как я настроить его для моего Java проекта с использованием Gradle был следующим:

1). Добавить конфигурацию доклет в build.grade

doclet(
     [group: 'com.carma', name: 'swagger-doclet', version: '1.0.4.2'], 
     [group: 'javax.ws.rs', name: 'javax.ws.rs-api', version: '2.0'] 

)

2). Создать Gradle задачу генерирования остальной документации после сборки generateRestApiDocs задач (типа: Javadoc) {

source = sourceSets.main.allJava 
    def file = new File(project.rootDir.toString() + "/my-app/src/main/resources/assets/api-docs") 

    destinationDir = file 
    options.classpath = configurations.doclet.files.asType(List) 
    options.docletpath = configurations.doclet.files.asType(List) 
    options.doclet = "com.carma.swagger.doclet.ServiceDoclet" 
    options.addStringOption("apiVersion", "1") 
    options.addStringOption("docBasePath", "/assets/api-docs") 
    options.addStringOption("apiBasePath", "../../") 
    options.addBooleanOption("skipUiFiles", true) 
    if (JavaVersion.current().isJava8Compatible()) { 
    options.addStringOption('Xdoclint:none') 
    } 
} 

3). Сделать построение зависит от сгенерированной задачи по остальным документам

build.dependsOn generateRestApiDocs 

4). Аннотации и javadoc Ваши ресурсы

/** 
    * Endpoint to do something blah blah 
    * 
    * @param id blah blah blah 
    * @param boolean blah blah blahb 
    * @return {@link blab} 
    * @responseMessage 200 ok 
    * @responseMessage 404 not found 
    */ 
    @GET 
    @Produces(MediaType.APPLICATION_JSON) 
    @Path("/{id}") 

5). Задача сборки создаст необходимые файлы jjj swagger, которые будут обслуживаться вашим swagger ui.

+0

Это, вероятно, будет полезно для других, но, как я уже сказал, я использую maven, а не gradle. –

+0

Я изо всех сил пытаюсь заставить это работать с Gradle. Я создаю REST-сервер с Dropwizard и не был успешным с автоматической документацией swagger. Я следил за этой ссылкой https://itazuramono.com/2015/12/07/automatic-swagger-documentation-for-dropwizard-using-maven/, но с версией Gradle от https://github.com/conorroche/swagger -doclet и все еще получить 404 от причала. У вас есть пример проекта, который вы могли бы поделиться? Или, по крайней мере, показать, как выглядит ваш каталог сборки? В моем каталоге сборки есть apidocs, но swagger ui не был включен. Помогите? –

1

Ознакомьтесь с разделом «Использование» на https://github.com/teamcarma/swagger-jaxrs-doclet - для примеров как для maven, так и для gradle.

Кроме того, раздел «Пример» выглядит довольно прямолинейно; следовательно, немного не уверен, что это такое, что вы ищете для помощи. Если бы вы могли быть немного больше - «Может ли кто-нибудь показать мне, как вывести выход из swagger-jaxrs-doclet и создать из него документацию по XML? Мне нужно сделать это в maven».

Как я понимаю, com.carma: swagger-doclet генерирует необходимые файлы описания ресурсов Swagger 1.2 и помещает их в «build/reports/rest-api-docs», если вы просто используете их пример как есть.

Смежные вопросы