首页 > 其他分享 >Springboot整合Swagger3

Springboot整合Swagger3

时间:2024-10-28 14:44:34浏览次数:6  
标签:springfox Springboot documentation List Swagger3 整合 new import swagger

1、pom.xml依赖

 <!-- Swagger3依赖 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>${swagger.version}</version>
        </dependency>
        <!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 -->
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-models</artifactId>
            <version>1.6.2</version>
        </dependency>

  

2、application.yml配置文件

# Swagger配置
swagger:
  # 是否开启swagger
  enabled: true
  # 请求前缀
  pathMapping: /dev-api

  

3、

SwaggerConfig配置类
package com.feng.core.config;

import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;
import java.util.ArrayList;
import java.util.List;

/**
 * Swagger3的接口配置地址: http://localhost:8089/swagger-ui/index.html
 */
@Configuration
public class SwaggerConfig
{

    /** 是否开启swagger */
    @Value("${swagger.enabled}")
    private boolean enabled;

    /** 设置请求的统一前缀 */
    @Value("${swagger.pathMapping}")
    private String pathMapping;

    /**
     * 创建API
     */
    @Bean
    public Docket createRestApi()
    {
        return new Docket(DocumentationType.OAS_30)
                // 是否启用Swagger
                .enable(enabled)
                // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
                .apiInfo(apiInfo())
                // 设置哪些接口暴露给Swagger展示
                .select()
                // 扫描所有有注解的api,用这种方式更灵活
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                // 扫描指定包中的swagger注解
                // .apis(RequestHandlerSelectors.basePackage("com.ruoyi.project.tool.swagger"))
                // 扫描所有 .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build()
                /* 设置安全模式,swagger可以设置访问token */
                .securitySchemes(securitySchemes())
                .securityContexts(securityContexts())
                .pathMapping(pathMapping);
    }

    /**
     * 安全模式,这里指定token通过Authorization头请求头传递
     */
    private List<SecurityScheme> securitySchemes()
    {
        List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
        apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue()));
        return apiKeyList;
    }

    /**
     * 安全上下文
     */
    private List<SecurityContext> securityContexts()
    {
        List<SecurityContext> securityContexts = new ArrayList<>();
        securityContexts.add(
                SecurityContext.builder()
                        .securityReferences(defaultAuth())
                        .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
                        .build());
        return securityContexts;
    }

    /**
     * 默认的安全上引用
     */
    private List<SecurityReference> defaultAuth()
    {
        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
        authorizationScopes[0] = authorizationScope;
        List<SecurityReference> securityReferences = new ArrayList<>();
        securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
        return securityReferences;
    }

    /**
     * 添加摘要信息
     */
    private ApiInfo apiInfo()
    {
        // 用ApiInfoBuilder进行定制
        return new ApiInfoBuilder()
                // 设置标题
                .title("标题:风管理系统_接口文档")
                // 描述
                .description("描述:人员信息")
                // 作者信息
                .contact(new Contact("feng", null, null))
                // 版本
                .version("版本号:0.0.1")
                .build();
    }
}

  

4、测试地址:   http://localhost:8089/swagger-ui/index.html

 

标签:springfox,Springboot,documentation,List,Swagger3,整合,new,import,swagger
From: https://www.cnblogs.com/Amywangqing/p/18510571

相关文章

  • SpringBoot整合Mybatis
    1、项目结构 2、pom.xml依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation=&q......
  • 【Java源码】基于SpringBoot的校园二手交易市场
    1项目介绍本课程演示的是一套基于SpringBoot的校园二手交易市场,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。包含:项目源码、项目文档、数据库脚本、软件工具等所有资料带你从零开始部署运行本套系统该项目附带的源码资料可作为毕设使用系......
  • 【Java】【SpringBoot】logback开发环境配置
    LogBack开发环境配置Logback是一个开源的日志记录库,它是log4j的一个改进版本。Logback被设计为易于使用,同时提供强大的日志管理功能。1.添加依赖在pom.xml文件中添加依赖:<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <vers......
  • SpringBoot面向专利知识产权的电子交易模式9nvio 程序+源码+数据库+调试部署+开发环境
    开题报告内容课题名称:SpringBoot面向专利知识产权的电子交易模式9nvio一、课题背景及意义随着全球科技创新的加速和知识产权保护意识的提升,专利知识产权已成为企业核心竞争力的关键要素。然而,传统的专利交易方式存在信息不对称、交易成本高、市场不透明等问题,制约了知识产权......
  • 基于Springboot音乐翻唱与分享平台【附源码+文档】
    ......
  • ASP.Net Core 8 Web API整合Swagger UI并进行模块分组吃屎般瞬间记录
    一、开发环境开发工具:VisualStudio2022工程模板:ASP.NetCore8WebAPI工程(官方标准的).Net环境:.NetCore8.0NuGet依赖:Swashbuckle.AspNetCore6.9.0(UI用的默认的UI界面,可以自由选择其他的UI界面)二、基本概述参考了网上很多大佬的帖子,实现基本就两种:1、用自定义At......
  • SpringBoot企业工资管理系统r9a51(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表员工,财务,项目名称,财务项目,工资信息开题报告内容一、研究背景随着企业规模的扩大和人力资源管理的复杂化,工资管理成为企业日常运营中的重要环节。传统的手......
  • SpringBoot平时成绩管理系统0n16p程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表学生,教师,班级,课程信息,课程类别,成绩管理开题报告内容一、研究背景与意义在教育领域,平时成绩的管理对于评估学生的学习状态、调整教学策略具有重要意义。然......
  • springboot项目log
    目录logbackinfo和error独立文件yaml配置logback-spring.xmllogbackspring默认日志info和error独立文件yaml配置#日志文件配置logging:file:name:${user.home}/logs/${spring.application.name}.log#日志文件名,全路径level:#配置自己写的MyBatisMa......
  • springboot琴行培训机构管理系统-计算机毕业设计源码49732
    目 录摘要1绪论1.1研究背景1.2 研究意义1.3论文结构与章节安排2 系统分析2.1可行性分析2.2系统流程分析2.2.1数据新增流程2.2.2 数据删除流程2.3 系统功能分析2.3.1功能性分析2.3.2非功能性分析2.4本章小结3系统总体设计3.1系......