You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dropwizard中配置自定义路径访问Swagger UI

Dropwizard 配置Swagger UI自定义访问路径方案
  • 配置静态资源映射
    首先将拉取到的完整dist文件夹放入项目的src/main/resources/assets目录,无assets目录可手动新建。在项目启动类的initialize方法中注册静态资源Bundle:
    @Override
    public void initialize(Bootstrap<你的配置类名> bootstrap) {
        // 三个参数分别为:静态资源在classpath下的路径、对外暴露的访问路径、默认索引文件
        bootstrap.addBundle(new AssetsBundle("/assets/dist", "/dist", "index.html"));
        // 新增openapi资源映射,保证你的yaml文件可正常访问
        bootstrap.addBundle(new AssetsBundle("/assets/openapi", "/openapi", null));
    }
    
    为避免API接口路径和静态资源路径冲突,建议在run方法中指定API接口前缀:
    @Override
    public void run(你的配置类名 configuration, Environment environment) {
        environment.jersey().setUrlPattern("/api/*");
        // 其余原有接口注册逻辑保留
    }
    
  • 调整Swagger UI配置
    保持dist文件夹下index.html中的openapi路径配置不变即可:url: "/openapi/openapi.yaml",确保你的openapi.yaml文件已放在src/main/resources/assets/openapi目录下。
  • 本地域名绑定(可选)
    如需使用dropwizard-project-work.com访问,在本地hosts文件中添加映射规则:
    127.0.0.1 dropwizard-project-work.com
    
    Dropwizard默认应用端口为8080,无特殊修改直接启动服务即可。
  • 跨域问题修复(按需配置)
    若访问时出现跨域报错,在run方法中添加CORS过滤器:
    final FilterRegistration.Dynamic cors = environment.servlets().addFilter("CORS", CrossOriginFilter.class);
    cors.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, "*");
    cors.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, "X-Requested-With,Content-Type,Accept,Origin");
    cors.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, "OPTIONS,GET,PUT,POST,DELETE,HEAD");
    cors.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");
    
  • 验证访问
    服务启动成功后,直接访问http://dropwizard-project-work.com:8080/dist即可进入Swagger UI界面。

内容的提问来源于stack exchange,提问作者Max

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 15:57:00