根据本教程,我使用Swagger for Jersey2:https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5使用自定义Application类。为了使Swagger正确初始化,需要实现getClasses()
的覆盖。
不幸的是,这也意味着我必须手动将每个类从我的资源添加到HashSet。如果我不这样做,所有端点都会返回404.但是当我不使用Swagger时,我不必覆盖该方法,并且所有REST资源都会被JAX-RS注释自动发现。
有没有办法注册Swagger类,但同时保留我个人资源的自动发现?
答案 0 :(得分:2)
使用ResourceConfig
扩展Application
。 ResourceConfig
有packages
方法通过包扫描注册所有类,您可以在register
上注册调用ResourceConfig
的Swagger组件。你可以在构造函数中完成所有这些。
@ApplicationPath("/api")
public class AppConfig extends ResourceConfig {
public AppConfig() {
packages("the.packages.to.scan");
register(SwaggerComponent.class);
}
}
另见: