Swagger-boostrap-ui如何配置用户名密码访问

 更新时间:2023年05月26日 14:21:40   作者:墨着染霜华  
这篇文章主要介绍了Swagger-boostrap-ui如何配置用户名密码访问,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Swagger-boostrap-ui配置用户名密码访问

配置文件书写

swagger:
  production: false
  basic:
    enable: true
    username: XX
    password: XXX

Swagger类配置

@Configuration
@EnableSwagger2
@EnableSwaggerBootstrapUI
public class Swagger2 {
    private String basePackage="com.XXX";
    private String title="XXX接口文档";
    /**
     * @Description:swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等
     */
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
                .apis(RequestHandlerSelectors.basePackage(basePackage))
                .paths(PathSelectors.any()).build();
    }
    /**
     * @Description: 构建 api文档的信息
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title(title)
                .contact(new Contact("", "http://www.whbswdt.com", ""))
                .description("欢迎访问武汉百胜开发接口文档")
                .version("20.8.28").build();
    }
}

访问文档接口

接口文档swagger-bootstrap-ui的使用

相信使用前后端分离的工程师都对接口文档折磨过。无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。

而Swagger,我个人理解就是把相关的信息存储在它定义的描述文件里面(yml或json格式),再通过维护这个描述文件可以去更新接口文档,以及生成各端代码,它能够很好地化解前面所说的尴尬。

这样项目开始时期,只要前端跟后端定义好返回的数据格式,就可以根据接口文档进行统一的规范,这样数据规范起来之后,前端就不需要等到后端开发好接口才能知道具体的数据格式,前端使用mockjs模拟数据进行开发,大大节省了时间,同时也减少了不必要的沟通过程。

个人感觉原生的swagger-UI不太友好,所以在网上找到了swagger-bootstrap-ui,这是国人开发的ui包,感觉非常不错。

快速开始

引入maven包

由于是springfox-swagger的增强UI包,所以基础功能依然依赖Swagger,springfox-swagger的jar包必须引入

<dependency>
 <groupId>io.springfox</groupId>
 <artifactId>springfox-swagger2</artifactId>
 <version>2.9.2</version>
</dependency>

然后引入SwaggerBootstrapUi的jar包

<dependency>
  <groupId>com.github.xiaoymin</groupId>
  <artifactId>swagger-bootstrap-ui</artifactId>
  <version>1.9.6</version>
</dependency>

当前最新的是1.9.6版本

编写Swagger2Config配置文件

Swagger2Config配置文件如下:

@Configuration
@EnableSwagger2
@EnableSwaggerBootstrapUI
public class SwaggerConfiguration {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("接口文档")
                .description("接口文档")
                .build();
    }
}

这里官网有一个对新手不太友好的小坑,那就是Docket中的apis中设置包的扫描路径,我之前是直接使用官网的配置类,没有改变包的扫描路径,导致文档没有显示接口,而改成

RequestHandlerSelectors.withClassAnnotation(RestController.class)

之后就可以了,这样算是使用了软编码吧!

访问地址

swagger-bootstrap-ui默认访问地址是:http://${host}:${port}/doc.html

swagger2注解

给Controller类添加swagger2注解就生成相应的接口文档了。

例如:

@Api(value="/test1", tags="测试接口模块")
@RestController
public class testContro {
    @ApiOperation("test")
    @GetMapping("/ha")
    public String test(){
        return "test成功";
    }
    @ApiOperation("Area删除")
    @GetMapping("/a")
    public String ha(){
        return "Area删除成功";
    }
}

运行项目之后就可以看到下面的效果:

swagger.png

最后

有了接口文档之后,当前后端分离开发的时候,只需要丢一个测试环境的文档地址过去给前端就可以了,直接看着文档进行参数对接,同时这个接口文档的调试功能也是非常不错的,有时候懒得写单元测试,直接写一个查询的方法获取数据,再调用请求接口进行调试也是非常方便的。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用Java和SNMP4J实现SNMP操作完整代码

    使用Java和SNMP4J实现SNMP操作完整代码

    这篇文章主要介绍了如何使用Java和SNMP4J库进行SNMP操作,包括初始化SNMP、创建目标、创建PDU、发送SNMP请求和处理响应等内容,通过编写SnmpUtil类,展示了完整的SNMP操作流程,需要的朋友可以参考下
    2024-12-12
  • 深入分析java文件路径的详解

    深入分析java文件路径的详解

    本篇文章是对java文件路径进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • ShardingSphere之读写分离方式

    ShardingSphere之读写分离方式

    这篇文章主要介绍了ShardingSphere之读写分离方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • SpringBoot使用flyway初始化数据库

    SpringBoot使用flyway初始化数据库

    这篇文章主要介绍了SpringBoot如何使用flyway初始化数据库,帮助大家更好的理解和学习使用SpringBoot框架,感兴趣的朋友可以了解下
    2021-03-03
  • 在springboot中注入FilterRegistrationBean不生效的原因

    在springboot中注入FilterRegistrationBean不生效的原因

    这篇文章主要介绍了在springboot中注入FilterRegistrationBean不生效的原因及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • JDK21安装与配置完整图文教程

    JDK21安装与配置完整图文教程

    JDK21版本作为Java平台的未来版本,可能会带来一系列创新和优化,从性能到安全性,再到编程体验和跨平台能力,都是它将要重点关注的领域,这篇文章主要介绍了JDK21安装与配置的相关资料,需要的朋友可以参考下
    2026-02-02
  • Java TreeSet实现学生按年龄大小和姓名排序的方法示例

    Java TreeSet实现学生按年龄大小和姓名排序的方法示例

    这篇文章主要介绍了Java TreeSet实现学生按年龄大小和姓名排序的方法,涉及java类型转换、遍历、比较等相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • 聊聊Java中接口重试机制的几种解决方案

    聊聊Java中接口重试机制的几种解决方案

    接口请求重试机制是保证系统稳定性和容错能力的重要手段之一,当接口请求发生失败或暂时性错误时,通过重试机制可以提高请求的成功率,本文将详细介绍接口请求重试机制的几种常见方法,感兴趣的可以了解一下
    2025-07-07
  • MyBatis-Plus TypeHander不生效的问题解决

    MyBatis-Plus TypeHander不生效的问题解决

    MyBatis-Plus中使用lambdaUpdate更新JSON字段时,TypeHandler未生效导致数据截断错误,需手动转换或显式指定typeHandler解决,下面就来介绍一下该问题的解决
    2025-08-08
  • Spring请求传递参数的解决方案

    Spring请求传递参数的解决方案

    访问不同的路径,就是发送不同的请求.在发送请求时,可能会带⼀些参数,所以我们在学习Spring的请求时,主要是学习如何传递参数到后端以及后端如何接收,下面给大家讲解 Spring请求传递参数详解,一起看看吧
    2024-01-01

最新评论