一、springdoc介绍
SpringDoc是一款可以结合SpringBoot使用的API文档生成工具,基于OpenAPI 3,是一款更好用的Swagger库!值得一提的是SpringDoc不仅支持Spring WebMvc项目,还可以支持Spring WebFlux项目,甚至Spring Rest和Spring Native项目。
二、使用步骤
1.引入库
gradle:
api group: 'org.springdoc', name: 'springdoc-openapi-ui', version: '1.7.0'
maven:
1 2 3 4 5 | < dependency > < groupid >org.springdoc</ groupid > < artifactid >springdoc-openapi-ui</ artifactid > < version >1.7.0</ version > </ dependency > |
2.spring配置类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | @AutoConfiguration public class SpringDocConfig { @Bean public OpenAPI openAPI() { return new OpenAPI() .info( new Info() .title( "newframe-接口文档" ) .description( "基于SpringDoc的在线接口文档" ) .version( "0.0.1" )); } @Bean public GroupedOpenApi publicApi() { return GroupedOpenApi.builder() .group("公开API") .pathsToMatch( "/**" ) .build(); } @Bean public GroupedOpenApi adminApi() { return GroupedOpenApi.builder() .group("权限相关") .packagesToScan("com.iscas.biz.controller.common.auth") .build(); } } |
3.常用的swagger注解和springdoc的对应关系
4.一个接口类的示例
省略,网上例子太多了
5.配置文件配置
springdoc.swagger-ui.doc-expansion=none
springdoc.swagger-ui.path=/doc.html
或
springdoc:
swagger-ui:
doc-expansion: none
path: /doc.html
6.WebMvc配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | @AutoConfiguration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry. addResourceHandler( "/swagger-ui/**" ) .addResourceLocations( "classpath:/META-INF/resources/webjars/springfox-swagger-ui/" ) .resourceChain( false ); registry. addResourceHandler( "/webjars/**" ) .addResourceLocations( "classpath:/META-INF/resources/webjars/" ); } @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController( "/swagger-ui/" ) .setViewName( "forward:/swagger-ui/index.html" ); } } |
7.UI
server:
port: 8010
servlet:
context-path: /api
访问地址:http://localhost:8010/api/swagger-ui/ 或 http://localhost:8010/api/doc.html
UI还使用swagger的UI,如下图所示:
参考文献