springBoot3.0以上版本引入swagger页面(和knief4j界面)

前言

springBoot3.0以上的版本没办法使用我们swagger的v2和v3的版本,只能使用spring提供的一个新的依赖,使用他的页面和我们正常的swagger的页面是一样的,只是引入的依赖不一样(使用的注解也发生了改变)

引入swagger

依赖

        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
            <version>2.2.0</version>
        </dependency>
        <!--  搭配校验使用,使用与SpringBoot相同的版本号  -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
            <version>3.1.5</version>
        </dependency>

swagger的配置类

@Configuration
public class SwaggerConfig {

    @Bean
    public OpenAPI swaggerOpenAPI(){
        return new OpenAPI()
                .info(new Info().title("oa流程控制")
                        .contact(new Contact())
                        .description("我的API文档")
                        .version("版本v.1")
                        .license(new License().name("Apache 2.0").url("https://xxxx.xxx.xxx")))
                .externalDocs(new ExternalDocumentation()
                        .description("外部文档")
                        .url("https://xxxx.xxx.xxx"));
    }
}

yaml配置(下面的也可以不加,默认的配置也是能加载出来的)

  #如果不加下面配置,默认就是执行全部默认的配置
springdoc:
  swagger-ui:
    path: /swagger-ui.html
    tags-sorter: alpha
    operations-sorter: alpha
  api-docs:
    path: /v3/api-docs
  group-configs:
    - group: 'default'
      paths-to-match: '/**' #默认扫描全部的接口
      packages-to-scan: com.qtt.security  #不加会默认扫描全部的包

接口定义

注意这里面的注解@api和@ApiOperation都发生了改变,具体的变化参考其他文章

@RestController
@Tag(name = "登录界面", description = "登录接口接口")
public class LoginController {

    @Autowired
    private ILoginService loginServcie;

    @GetMapping("/user/register")
    @Operation(summary = "注册", description = "注册")
    public ResponseEntity<ResponseResult> register(@RequestParam("userName")String userName,
                                           @RequestParam("password")String password) {
        return loginServcie.register(userName,password);
    }


    @PostMapping("/user/login")
    @Operation(summary = "登录", description = "登录")
    public ResponseEntity<ResponseResult> login(@RequestBody User user){
        return loginServcie.login(user);
    }

    @GetMapping("/user/logout")
    @Operation(summary = "登出", description = "登出")
    public ResponseEntity<ResponseResult> logout(){
        return loginServcie.logout();
    }

}

如果你使用了springSecurity一类的安全框架需要去设置放行我们的swagger

.requestMatchers("/swagger-ui/**",
"/doc.html", 
"/webjars/**",
"/v3/api-docs/**",
"/swagger-resources/**").permitAll()

访问http://你的ip:你的接口/swagger-ui/index.html

使用knief4j的ui界面

swagger用着太难受了,还是knief4j或者他的前身swagger-bootstart-ui用着舒服,不过swagger-bootstart-ui好像不支持springBoot3.0也没提供解决办法(不确定,我没找到材料)

引入依赖

        <!--添加knife4j依赖-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
            <version>4.4.0</version>
        </dependency>

访问 http://你的ip:你的接口/doc.html

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值