当前位置: 首页 > article >正文

springboot2.0 集成swagger3+Knife4j导出离线API 配置

springboot 版本2.3.1

一、集成swagger3

  1. 引入swagger依赖包

        <!--swagger3集成-->
        <dependency>
            <groupId>org.springframework.plugin</groupId>
            <artifactId>spring-plugin-core</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.plugin</groupId>
            <artifactId>spring-plugin-metadata</artifactId>
            <version>2.0.0.RELEASE</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring-plugin-core</artifactId>
                    <groupId>org.springframework.plugin</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.plugin</groupId>
                    <artifactId>spring-plugin-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.plugin</groupId>
                    <artifactId>spring-plugin-metadata</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

开启 swagger-ui.html的图形化界面开关

springfox:
  documentation:
    swagger-ui:
      enabled: true
  1. 增加swager3 配置类和文档配置说明
mport io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import springfox.documentation.builders.*;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.schema.ScalarType;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import java.util.ArrayList;
import java.util.List;


@Configuration
@EnableOpenApi
public class Swagger3Config {

    @Bean
    public Docket createRestApi(){
        //返回文档概要信息
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build()
                .globalRequestParameters(getGlobalRequestParameters())
                .globalResponses(HttpMethod.GET,getGlobalResponseMessage())
                .globalResponses(HttpMethod.POST,getGlobalResponseMessage());
    }

    /*
    生成接口信息,包括标题,联系人等
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Swagger3接口文档")
                .description("组件接口文档")
                .version("1.0")
                .build();
    }


    /*
    封装全局通用参数
     */
    private List<RequestParameter> getGlobalRequestParameters() {
        List<RequestParameter> parameters=new ArrayList<>();
        parameters.add(new RequestParameterBuilder()
                .name("uuid")
                .description("设备uuid")
                .required(true)
                .in(ParameterType.QUERY)
                .query(q->q.model(m->m.scalarModel((ScalarType.STRING))))
                .required(false)
                .build());

        return parameters;
    }

//    封装通用相应信息

    private List<Response> getGlobalResponseMessage() {
        List<Response> responseList=new ArrayList<>();
        responseList.add(new ResponseBuilder().code("404").description("未找到资源").build());
        return responseList;
    }
   

4.本地访问地址

本地swagger 文档地址:http://127.0.0.1:10008/swagger-ui/index.html#

二、基于Knife4j导出离线API 配置

Knife4j是一款基于Swagger 2的在线API文档框架,是日常开发中很常用的框架,基于此框架,后端可以和前端开发人员进行高效沟通。

2.1 导入配置pom
添加Knife4j的依赖(当前建议使用的Knife4j版本,只适用于Spring Boot 2.6以下版本,不含Spring Boot 2.6)

   <!--swagger Knife4j导出配置-->

        <!--Knife4j-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>3.0.2</version>
        </dependency>

2.2 开启Knife4j增加注解和swagger导出ui关闭

knife4j:
  enable: true
springfox:
  documentation:
    swagger-ui:
      enabled: false

3 .启用Knife4j 功能
在启动类增加注解@EnableKnife4j ,开启Knife4j 功能

@EnableKnife4j 

4.访问地址
http://127.0.0.1:10008/doc.html

在这里插入图片描述


http://www.kler.cn/a/144472.html

相关文章:

  • 随笔记录-springmvc_ResourceHandlerRegistry+ResourceHttpRequestHandler
  • 【学习笔记】GameFramework的非官方实例TowerDefense-GameFramework-Demo的流程
  • BTS-GAN:基于MRI和条件对抗性网络的乳腺肿瘤计算机辅助分割系统
  • 【Pytorch】Visualization of Fature Maps(2)
  • RESTful
  • 3.读取字符串【2023.11.25】
  • Django(九、cookie与session)
  • laravel8安装多应用多模块(笔记三)
  • 数据库基础入门 — SQL排序与分页
  • 计数问题+约瑟夫问题(map)
  • 手写模拟Spring底层原理(Spring启动流程)(思维导图)
  • SQL 注入漏洞的理解
  • Python爬虫知识储备
  • AT89S52单片机智能寻迹小车自动红外避障趋光检测发声发光设计
  • 网安融合新进展:Check Point+七云网络联合研发,加固大型企业边缘、分支侧安全
  • Linux中安装MySQ-合集
  • 微服务实战系列之签名Sign
  • 网络运维与网络安全 学习笔记2023.11.22
  • 【计算机网络】(网络层)定长掩码和变长掩码
  • 『亚马逊云科技产品测评』活动征文|EC2 实例安装 docker 与配套软件部署前后端分离的医疗管理后台系统