成功解决Swagger问题

文件名称 版本号 作者 qq 版本
成功解决Swagger问题 v0.0.3 若布与宫合 8416837 SpringBoot 2.2.6
Spring-Cloud-Gateway 2.2.2

在线API调试,如何授权成功

  • 在Swagger页面调接口,需要授权才能调,怎么搞呢?需要进行授权

todo

  • Bug:因为没有Cookie或存储,没有存储token,导致授权成功后,刷新页面,授权清零,变得没权限了;

进行授权

  • 新建模块|微服务注意,除了引入Swagger相关依赖包,还要在Nacos配置中心增加授权配置,每个业务子模块都有Swagger配置,看这个:在这里插入图片描述,点进去,查找swagger,分别配置Swagger授权地址等:
# swagger 配置
swagger:
  title: 定时任务接口文档
  license: Powered By ruoyi
  licenseUrl: https://ruoyi.vip
  authorization:
    name: RuoYi OAuth
    auth-regex: ^.*$
    authorization-scope-list:
      - scope: server
        description: 客户端授权范围
    token-url-list:
      - http://localhost:8080/auth/oauth/token # 获取token

http://localhost:8080/auth/oauth/token,这是文档授权地址,向这个地址请求获取Token。

  • Swagger生成的接口需要权限验证的处理方法:
    打开Swagger页面,地址是网关ip:端口/swagger-ui.html(http://localhost:8080/swagger-ui.html)(网关就是ruoyi-gateway(-dev|-staging|-pro)),在页面的右上角,点击授权在这里插入图片描述即【Authorize】按钮(前提是你已经开启了这个按钮),填入参数,执行,报错了:
    在这里插入图片描述
    下拉条,那几个type好像都可以,但它们的传参是不一样的
  • 模拟授权
    在浏览器找到请求参数,使用客户端工具请求试一下,http报错显示如下:
    简单,原来是验证码不能为空:(坑:代码里打印的报错与http报错日志不一样,有时候浏览器那里的报错还是乱码的)
    在这里插入图片描述
  • 取消Swagger验证码验证,如何取消,请见下文,授权成功:
    在这里插入图片描述
    参数:
    在这里插入图片描述

Swagger测试时,如何取消授权验证码验证?

ValidateCodeFilter.javareturn (exchange, chain) -> {}函数体里面增加下述代码:

			// 节选
			ServerHttpRequest request = exchange.getRequest();
            URI uri = request.getURI();
			// ...
			// Swagger授权不处理
            if ( uri.getHost().indexOf("localhost") >= 0) {
                return chain.filter(exchange);
            }

如果有想法,欢迎留言~

猜你喜欢

转载自blog.csdn.net/cc007cc009/article/details/106645113