SpringDoc --> Swagger的完美替代品 使用详解【可完全匹配新版Springboot】可视化RESTful风格 Web 服务接口api文档

        使用了最新 SpringBoot 版本的朋友们在使用 swagger 时一定都碰到了很多烦恼,各种报错。废话不多说,既然你已经看到了这里就说明你已经查阅了很多资料,对swagger有了一定的了解。话不多说,直接上菜。

| 造成问题的原因

        当然咯,上菜之前咱还是得讲解一下,为何频频出错;原因很简单,随着时间的推移,springboot 一直在更新迭代,而 swagger 已经1年多没有再进行升级(当前时间:北京时间3月6日17:38分),因此版本已经不再兼容;

上菜

  • 我当前所使用的 springboot 及 springcloud 对应的版本

父项目做了版本管理

 

| 需要在项目中添加的springdoc依赖

<!--  https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-ui  -->
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-ui</artifactId>
            <version>1.6.6</version>
        </dependency>

| yml文件配置

#springdoc接口文档指定接口包扫描
springdoc:
 packages-to-scan: com.xxxxxxxx
#或者指定访问接口路径扫描
#  paths-to-match: /api/user/**
  • 只需扫描sb启动类下的包即可 

| 配置类

  • 项目中添加配置类,配置类的详解查看注释即可
package com.yangdaxian.payment.config;

import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import io.swagger.v3.oas.models.security.SecurityScheme;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * http://127.0.0.1:9090/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/
 *
 * @ClassName SpringDocConfig
 * @Description TODO /v3/api-docs
 * @Author yangdaxian
 * @DATE 2022/2/23 09:46:16
 * @Version 1.0
 */
@Configuration
public class SpringDocConfig {

    @Bean
    public OpenAPI springShopOpenAPI() {
        return new OpenAPI()
                .info(info())
/*添加对JWT对token的支持(本步骤可选) 在添加OpenApiConfig类上添加Components信息:然后在OpenApi中注册Components:*/
                .components(components())
                .externalDocs(externalDocumentation());
    }

    private License license() {
        return new License()
                .name("MIT")
                .url("https://opensource.org/licenses/MIT");
    }

    private Info info() {
        return new Info()
                .title("Benjamin Yang's Open API")
                .description("Benjamin Yang")
                .version("v0.0.1")
                .license(license());
    }

    private ExternalDocumentation externalDocumentation() {
        return new ExternalDocumentation()
                .description("Benjamin Yang's Blog")
                .url("https://blog.csdn.net/m0_55710969?spm=1001.2014.3001.5343");
    }

    /* 添加对JWT对token的支持(本步骤可选)
     在添加OpenApiConfig类上添加Components信息:*/
    private Components components() {
        return new Components()
                .addSecuritySchemes("bearer-key", new SecurityScheme().type(SecurityScheme.Type.HTTP).scheme("bearer").bearerFormat("JWT"));
    }
    /*然后在OpenApi中注册Components:*/
/*    @Bean
    public OpenAPI springShopOpenAPI2() {
        return new OpenAPI()
                .info(info())
                .components(components())
                .externalDocs(externalDocumentation());
    }
    */
//    /*在需要使用Authorization的接口上添加:*/
//    @Operation(security = { @SecurityRequirement(name = "bearer-key") })

}

使用姿势

        很简单,只需要几个注解即可轻松搞定;

| 实体类api文档注解

这里可以看到,使用的还是swagger3包中的内容。

ps:这是码友们对它的社区版升级啦,并非官方,但非常好用哦

实体类的相关注解 :如图所示

  • 更多使用方式就需要点进注解自己参考啦

| Controller控制层 / 接口方法层

        同样,还是导入的swagger3的包,这里仅做几个重要注解参数的使用,更多姿势还请诸位亲自进入接口类解锁;如图所示:

接下来启动项目,访问

127.0.0.1:9090/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/
  • 即可看到如下图所示的操作文档说明啦~

  • 查看方法,也可以像postman一样测试哦

  • 实体类效果如图

关于新版 springboot 整合 springdoc 到这里便宣告结束啦,祝 玩的愉快! 


Thanks 

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hah杨大仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值