将Swagger与Dropwizard集成,无法生成swagger.json文件

时间:2015-04-08 21:14:28

标签: java rest maven-3 swagger dropwizard

我已完成以下步骤:

我有一个现有的向导项目设置[0.8版本]。

添加依赖

    <dependency>
            <groupId>com.wordnik</groupId>
            <artifactId>swagger-jaxrs_2.10</artifactId>
            <version>1.3.12</version>
            <scope>compile</scope>
    </dependency>
    <dependency>
            <groupId>com.wordnik</groupId>
            <artifactId>swagger-core</artifactId>
            <version>1.5.1-M2</version>
    </dependency>

我已将@Api注释添加到我的资源文件中。

我已将以下代码添加到应用程序运行类:

environment.jersey().register(new ApiListingResource());
BeanConfig config = new BeanConfig();
        config.setTitle("default Application");
        config.setVersion("1.0.0");
        config.setResourcePackage("com.class.where.the.api.annotation.are");
        config.setScan(true);

问题是当我运行应用程序时,我无法通过http://localhost:8080/swagger.json获取swagger.json。

几乎遵循此处的示例:https://github.com/swagger-api/swagger-core/tree/master/samples/java-dropwizard

有谁知道问题是什么?我还需要设置什么? [该应用程序运行并启动正常,我只是无法访问该swagger.json文件]

1 个答案:

答案 0 :(得分:3)

您正在使用冲突和不完整的依赖项。如果您查看https://github.com/swagger-api/swagger-samples/tree/master/java/java-dropwizard示例,您会发现实际上需要包含:

<dependency>
  <groupId>com.wordnik</groupId>
  <artifactId>swagger-jersey2-jaxrs</artifactId>
  <version>1.5.1-M1</version>
  <scope>compile</scope>
  <exclusions>
    <exclusion>
      <groupId>com.sun.jersey</groupId>
      <artifactId>*</artifactId>
    </exclusion>
  </exclusions>
</dependency>

只有那个(没有swagger-core直接)。如果您使用与您拥有的配置相似的配置,它应该可以正常工作。