我在提供的带有 Swagger 1.5.18 的应用程序服务器中使用普通的 JAXRS。 我可以让 Swagger 注释类出现在swagger.json
中,但我在设置 Swagger 以扫描非注释类时遇到问题,这些类只有@Path
JAXRS 注释。
我目前在类中具有扩展Application
的BeanConfig
。 我尝试使用一种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);
}
}
布莱恩