在 JAXRS 中为 Swagger 设置 scan.all.resources



我在提供的带有 Swagger 1.5.18 的应用程序服务器中使用普通的 JAXRS。 我可以让 Swagger 注释类出现在swagger.json中,但我在设置 Swagger 以扫描非注释类时遇到问题,这些类只有@Path JAXRS 注释。

我目前在类中具有扩展ApplicationBeanConfig。 我尝试使用一种Servlet来扩展DefaultJaxrsConfig @WebInitParam(name="scan.all.resources", value="true")但根本不起作用。

文档指出,设置 ReaderConfig.scanAllResources 将实现我正在寻找的目标。 但是,我不确定实现这一点的好方法。 有什么建议吗?

当前配置类:

@ApplicationPath("services") 
public class Configuration extends Application {
public Configuration() {
    BeanConfig beanConfig = new BeanConfig();
    beanConfig.setVersion("1.0.0");
    beanConfig.setTitle("SwaggerExample");
    beanConfig.setBasePath("/SwaggerExample/services");
    beanConfig.setResourcePackage("com.xxxxxx.swagger.jaxrs");
    beanConfig.setScan(true);
    beanConfig.setPrettyPrint(true);
} 

谢谢,布莱恩

我确实找到了解决Swagger博客文章中发布的问题的方法,通过实现ReaderListener。 但是,我认为这可以设置在BeanConfig级别。 这是我的解决方案:

@SwaggerDefinition
public class ApiDefinitions implements ReaderListener {
    @Override
    public void afterScan(Reader reader, Swagger swagger) {
    }
    @Override
    public void beforeScan(Reader reader, Swagger swagger) {
        ((DefaultReaderConfig) reader.getConfig()).setScanAllResources(true); 
    }
}

布莱恩

最新更新