【发布时间】:2018-05-02 16:14:27
【问题描述】:
我有带有嵌入式码头服务器的 Maven 项目。 我已经使用 JAX-RS 创建了 api,它们工作正常。现在我想为我的 api 创建 swagger 文档。
从招摇开始,我添加了如下所述的 servlet 配置:
@WebServlet(name = "SwaggerConfig")
public class SwaggerServlet extends HttpServlet {
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
System.out.println("init SwaggerServlet");
BeanConfig beanConfig = new BeanConfig();
beanConfig.setVersion("1.0.0");
beanConfig.setSchemes(new String[]{"http"});
beanConfig.setHost("localhost:8082");
beanConfig.setBasePath("/api");
beanConfig.setResourcePackage("com.myCompany.myApisResourcePackage");
beanConfig.setScan(true);
}
}
另外,在 main 方法中, 除了我的球衣配置,我还添加了以下代码:
//swagger
ServletHolder swaggerServletHolder = new ServletHolder(SwaggerServlet.class);
swaggerServletHolder.setInitOrder(1);
swaggerServletHolder.setInitParameter("swagger.api.basepath", "http://localhost:8082");
context.addServlet(swaggerServletHolder, "/api/*");
//swagger end
所以,问题是,我无法找到 swagger.json 的创建位置。
在这种情况下,swagger 会按照服务器日志的说明扫描包,但仍然没有创建 swagger.json。
注意:我目前没有添加 swagger-ui,因为我认为创建 swagger.json 不是强制性的
【问题讨论】:
-
您需要配置 JAX-RS(实现)servlet 并将 api 资源注册到 JAX-RS 应用程序。 api 资源用于提供 JSON。寻找如何使用 Jetty 设置 Jersey 的示例,然后向 Jersey 注册 api 资源(应该在大多数 swagger 入门指南中)。