首页 > 其他分享 >swagger的使用

swagger的使用

时间:2024-01-29 17:37:17浏览次数:21  
标签:swagger spring documentation 使用 new import springfox

swagger的使用

1、导入依赖

<!--        swagger依赖-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
<!--        swagger原生ui-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
<!--    spring-security 安全验证框架,swagger集成  -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
<!--        knife4j swagger美化框架-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>2.0.9</version>
        </dependency>

2、配置文件配置

# 应用服务 WEB 访问端口
server:
  port: 8080

spring:
  security:
    basic:
      # 设置基本认证的路径 , 默认swagger-ui.html
      path: /doc.html
      # 是否启用基本认证
      enabled: true
    user:
      # 用户名
      name: admin
      # 密码
      password: 123456

3、编写swagger配置类

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;
import java.util.List;

@Configuration
@EnableSwagger2  // 开启 Swagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.swagger.controller"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo())
                .globalOperationParameters(globalOperationParameters());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("API 文档")
                .description("这是一个 Swagger API 文档示例")
                .version("1.0.0")
                .build();
    }

    private List<Parameter> globalOperationParameters(){
        //添加head参数配置start
        ParameterBuilder tokenPar = new ParameterBuilder();
        List<Parameter> pars = new ArrayList<>();
        /*配置请求头*/
        tokenPar.name("Authorization").description("token令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
        pars.add(tokenPar.build());
        return pars;
    }

}

4、访问

原生访问:http://localhost:8080/swagger-ui.html

美化版本访问:http://localhost:8080/doc.html

标签:swagger,spring,documentation,使用,new,import,springfox
From: https://www.cnblogs.com/chuanghongmeng/p/17994955

相关文章

  • MSE Nacos 配置变更审计平台使用指南
    作者:孙立(涌月)、邢学超(于怀)、李艳林(彦林)配置审计平台简介Nacos[1]作为一款业界主流的微服务注册中心和配置中心,管理着企业核心的配置资产,由于配置变更的安全和稳定诉求越来越高,因此我们提供了安全和可追溯性保障机制。配置变更的途径主要包括控制台手动发布和使用NacosSDK......
  • 为什么不能这样使用 Object.assign(state, { visibilityFilter: action.filter })
    为什么不能这样使用Object.assign(state,{visibilityFilter:action.filter})?在Redux的reducer中,直接使用Object.assign(state,{visibilityFilter:action.filter})来修改状态是不推荐的做法。原因如下:纯函数原则:Redux要求reducer必须是一个纯函数,即给定相同的输入(sta......
  • MarkDown的使用学习记录
    标题一级标题的形成:“井号”+“空格”+“标题”二级标题的形成:“井号”+“井号”+“空格”+“标题”三级标题的形成:“井号”+“井号”+“井号”+“空格”+“标题”(以此类推,最多有六级标题)字体粗体:在字的两边各加两个*斜体:在字的两边各加一个*斜体加粗:在字的两边各加三个......
  • React 使用的Redux, action type 抽离成常量好还是直接写死好
    React使用的Redux,actiontype抽离成常量好还是直接写死好?在React与Redux结合进行状态管理时,将actiontype抽离成常量是一种更推荐的做法,而不是直接写死在代码中。原因如下:减少错误:如果直接在actioncreator或reducer中硬编码字符串类型的actiontype,容易因拼写错误或大......
  • 【Celery】异步任务框架入门使用
    背景.项目中需要用到后台数据爬取更新的功能,同步做起来web页面毫无用户体验可言。使用celery异步任务框架来解决这个问题简单、高效。用了一段时间比较稳定,现在有空梳理下文档。简介Celery是一个强大的分布式任务队列系统,它允许你将工作以异步的方式排队执行,这对于执行耗时......
  • Git、.gitinore、SourceTree使用介绍
    Git使用教程Git是分布式版本控制系统,也可以叫内容管理系统(CMS),工作管理系统。Git安装本文档后半部分会介绍SourceTree,SourceTree内置有Git所以这里不介绍其他Git安装方式。Git工作流程克隆Git资源到本地仓库(文件夹)在本地仓库中添加或修改文件。获取Git其他人的修改信......
  • SqlServer中使用游标遍历数据集合
    具体代码如下所示:/***************************************** 实例:打印输出数据表BUS_Test中的Name和Age字段的值*****************************************/--声明遍历@Name和@AgeDECLARE@NameNVARCHAR(50),@AgeINT--声明游标C_UserDECLAREC_UserCURSORFAST_FOR......
  • 使用Redis实现多节点任务调度
    1.目的目前中有部分功能需要定时更新或者推送数据,但正式环境存在多个server运行,会导致定时任务在多台服务器或者多个server同时运行。解决思路1:可以使用一台固定的服务器的一个节点单独部署定时任务的程序。解决思路2:多节点调度时,使用Redis锁来实现只有一个节点单独执行。结......
  • 在Mac上使用jenv管理JDK版本
    主要使用的工具就是jenv,安装方法有很多教程,这里贴个我使用的教程 这里记录下常用的一些命令#安装jenvbrewinstalljenv#设置jenv环境变量echo'exportPATH="$HOME/.jenv/bin:$PATH"'>>~/.bash_profileecho'eval"$(jenvinit-)"'>>~/.bash_profile#......
  • docker部署(使用docker-compose)手把手教程
    docker部署(使用docker-compose)手把手教程:https://blog.csdn.net/qq_38377190/article/details/125504426?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170650340916800186593495%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=1706......