【问题标题】:Swagger + jaxrs + embedded jetty + no web.xmlSwagger + jaxrs + 嵌入式码头 + 没有 web.xml
【发布时间】: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 入门指南中)。

标签: rest jax-rs swagger


【解决方案1】:

我通过点击 url“localhost:8082/swagger.json”得到了 swagger json。我使用了与我的问题中发布的相同的配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    相关资源
    最近更新 更多