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

Integrate Swagger with Dropwizard, not able to produce the swagger.json file

我已经完成了以下步骤:

我有一个现有的下拉向导项目设置 [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 注释添加到我的资源文件中。

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

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 文件]

您使用的是相互冲突且不完整的依赖项。如果您查看 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)。如果您确实按照与您所拥有的配置类似的配置进行操作,它应该可以正常工作。