swagger2 接口文档扩展swagger-bootstrap-ui 访问doc.html 404问题,

本文探讨了在Spring Boot项目中使用Swagger2时遇到的404问题,详细介绍了如何通过正确配置Swagger的Docket类来指定接口路径,确保接口能够被正确地文档化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   

.paths(PathSelectors.any()) 这个会导致404 不知道为什么
.paths(PathSelectors.regex("/.*")) 接口前缀
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {


    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                 /*Controller层的包地址*/
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.Controller"))
                /*接口请求地址前缀rest
                 *  比如 @RequestMapping(value = "/rest/article/{id}")     
                    可以写 /.* 但是要写明 接口发送post或get 或等等     
                 *
                 */ 
                 .paths(PathSelectors.regex("/rest/.*"))
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("swagger-bootstrap-ui RESTful APIs")
                .description("swagger-bootstrap-ui")
                .termsOfServiceUrl("http://localhost:8080/")
                .contact("TongLing")
                .version("1.0")
                .build();
    }

}
@RestController
public class ArticleRestController {
    @ApiOperation(value = "根据id查询学生信息", notes = "查询数据库中某个的学生信息")
    @ApiImplicitParam(name = "id", value = "学生ID", paramType = "path", required = true, dataType = "Integer")
    @RequestMapping(value = "/rest/article/{id}", method = GET, produces = "application/json")
    public void getStudent(@PathVariable int id) {
        System.out.println("1111");
    }

}

 

### 解决springfox-swagger-ui 和 springfox-swagger2 无法访问 doc.html问题 对于springfox-swagger-ui和springfox-swagger2组合使用过程中遇到的`doc.html`页面无法正常加载的问题,通常是因为Swagger UI默认配置与实际部署环境不匹配所引起的。具体来说,在某些情况下,如应用被部署到带有上下文路径的应用服务器或是通过Nginx等反向代理服务转发请求时,可能会导致静态资源定位失败。 为了确保能够正确访问`doc.html`文件并显示API文档界面,建议采取以下措施: #### 修改application.properties 或 application.yml 配置文件中的server.servlet.context-path属性 如果应用程序运行在一个特定的根路径下,则需设置对应的context path来告知Spring Boot该路径的存在。例如,当项目位于`/api/v1`这样的子路径中时,应该调整配置如下所示[^3]: ```yaml server: servlet: context-path: /api/v1 ``` #### 自定义Docket Bean以适应多模块工程需求 针对复杂的微服务体系架构或多模块单体应用情形,可以通过创建多个Docket实例分别描述不同分组下的API端点集合。这有助于更好地管理和展示各个业务领域内的RESTful API接口详情[^1]: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; @Configuration public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.example.controller")) .paths(PathSelectors.any()) .build(); } } ``` #### 使用swagger-bootstrap-ui替代原生UI组件 考虑到官方提供的springfox-swagger-ui存在一些局限性和不便之处,可以考虑采用社区维护更活跃且功能更为丰富的第三方库——swagger-bootstrap-ui作为替换方案。此工具不仅修复了许多已知缺陷,而且增加了诸如PDF导出等功能特性,极大提升了用户体验[^2][^4]. 以上方法可以帮助解决因路径映射不当而导致的`doc.html`不可达问题,并提供了一种更加友好易用的API文档浏览方式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值