首页 > 其他分享 >Swagger

Swagger

时间:2023-12-17 23:55:23浏览次数:45  
标签:zl springfox Swagger 扫描 import swagger Docket

Swagger快速入门

学习目标:

  • 了解Swagger的作用和概念
  • 了解前后端分离
  • 在SpringBoot中集成Swaggers

适用于前后端分离项目vue+springboot

Swagger介绍

  • swagger号称世界上最流行的Api框架
  • RestFul Api文档在线自动生成工具=>Api文档与Api定义同步更新
  • 直接运行,可以在线测试API接口
  • 支持多种语言(java,php)

在项目中是用swagger,

  • swagger2

  • ui

在SpringBoot集成Swagger

导入依赖

 <!--swagger2-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!--swagge-ui-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

检查是否成功集成可以访问swagger-ui.html

配置swagger信息

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;

@Configuration
@EnableSwagger2 //开启swagger2
public class swaggerconfigruation {

    @Bean
    public Docket docket(){
        return new Docket( DocumentationType.SWAGGER_2)
                .apiInfo(apiinfo());
    }
    //配置swagger apiinfo信息
    private ApiInfo apiinfo(){
        Contact DEFAULT_CONTACT = new Contact("zl", "", "[email protected]");
     return   new ApiInfo(
             "zl的swagger学习",
             "轻舟已过万重山",
             "1.0",
             "urn:tos",
             DEFAULT_CONTACT,
             "Apache 2.0",
             "http://www.apache.org/licenses/LICENSE-2.0",
             new ArrayList());
    }
}

Swagger配置扫描接口

适用Swagger3.0版本,上面使用的是swagger2.0

swagger访问ui的地址是http://localhost:8080/swagger-ui/

注意 swagger3.0版本与2.0版本在导入依赖上的区别

3.0只需要导入swagger启动器

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

image-20230714153249676

    @Bean
    public Docket docket(){

        return new Docket( DocumentationType.OAS_30)
                .apiInfo(apiinfo())
                .enable(true)
            //实现分组
                .groupName("zl")
                .select()
                //basePackage 扫描指定的包
                //any()扫描所有
                //none()什么都不扫描
                //withClassAnnotation() 扫描拥有指定注解类对象
                //withMethodAnnotation() 扫描拥有指定注解方法的对象
                .apis(RequestHandlerSelectors.basePackage("com.zl.controller"))
                //paths过滤什么路径[代表只要/zl路径下面的接口]
                .paths(PathSelectors.ant("/zl/**"))
                .build();
    }

思考一个问题,当我们需要协同开发时如何实现多个分组

答:其实一个分组是由一个Docket bean实列实现的,所以要实现多个分组就是实现多个docket bean实列

动态调整swagger的运行状态

 @Bean
    public Docket docket(Environment environment){
          //实现判断当前运行的环境是什么环境
        //获取当前生产环境,上线项目不使用swagger
        //boolean env = environment.getActiveProfiles()[0].equals("dev");
        Profiles profiles = Profiles.of("dev", "test");//当生产环境是dev或者test的时候
        boolean flag = environment.acceptsProfiles(profiles);

        return new Docket( DocumentationType.OAS_30)
                .apiInfo(apiinfo())
                .enable(flag)
                .groupName("zl")
                .select()
                //basePackage 扫描指定的包
                //any()扫描所有
                //none()什么都不扫描
                //withClassAnnotation() 扫描拥有指定注解类对象
                //withMethodAnnotation() 扫描拥有指定注解方法的对象
                .apis(RequestHandlerSelectors.basePackage("com.zl.controller"))
                //paths过滤什么路径[代表只要/zl路径下面的接口]
//                .paths(PathSelectors.ant("/zl/**"))
                .build();
    }

knife4j学习

王富贵 (lmlx66.top)

knife4j (xiaominfo.com) 访问di http://localhost:17790/doc.html

标签:zl,springfox,Swagger,扫描,import,swagger,Docket
From: https://www.cnblogs.com/wzl66/p/17910126.html

相关文章

  • SpringBoot集成Swagger的使用
    一、前言Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。目标是使客户端和文件系统作为服务器以同样的速度来更新文件的方法,参数和模型紧密集成到服务器。Swagger能够在线自动生成RESTFul接口的文档,同时具备测试接口的功能。简单点来讲就是说......
  • Swagger文档生成艺术:掌握@ApiModel和@ApiModelProperty的用法
    在现代软件开发中,提供清晰全面的 API文档 至关重要。@ApiModel 和 @ApiModelProperty 这样的代码注解在此方面表现出色,通过增强模型及其属性的元数据来丰富文档内容。它们的主要功能是为这些元素命名和描述,使生成的API文档更加明确。@ApiModel 和 @ApiModelProperty 的......
  • 解决:Swagger API 未授权访问漏洞问题
    Swagger是一个用于设计、构建、文档化和使用RESTful风格的Web服务的开源软件框架。它通过提供一个交互式文档页面,让开发者可以更方便地查看和测试API接口。然而,在一些情况下,未经授权的访问可能会导致安全漏洞。本文将介绍如何解决SwaggerAPI未授权访问漏洞问题。未授权访......
  • easyYapi 简单使用 ,一次只导出一个方法,swagger 注解生效,md 文档
    easyYapi简单使用,一次只导出一个方法,swagger注解生效,md文档有时候开放平台需要写文档,这个时候给yapi和swagger就不太友好,导出md,在导入smartdoc或者自己的md线上,其他3方的文档库语雀啥的就会好很多。1.第一步安装idea插件4.设置配置信息3.swagger......
  • .net6 webapi Swagger显示控制器为版本及接口注释
    1.安装Nuget包:Swashbuckle.AspNetCore2.使用Swagger中间件builder.Services.AddEndpointsApiExplorer();builder.Services.AddSwaggerGen(option=>{//要启用swagger版本控制要在api控制器或者方法上添加特性[ApiExplorerSettings(GroupName="版本号")] typ......
  • 一文浅入Springboot+mybatis-plus+actuator+Prometheus+Grafana+Swagger2.9.2开发运维
    Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTFUL风格的Web服务,是非常流行的API表达工具。Swagger能够自动生成完善的RESTFULAP文档,,同时并根据后台代码的修改同步更新,同时提供完整的测试页面来调试API。Prometheus是一个开源的服务监控系统和时序数据库......
  • 手摸手入门Springboot2.7集成Swagger2.9.2
    环境介绍技术栈springboot+mybatis-plus+mysql+oracle+Swagger软件版本mysql8IDEAIntelliJIDEA2022.2.1JDK1.8SpringBoot2.7.13mybatis-plus3.5.3.2REST软件架构风格REST即表述性状态传递(英文:RepresentationalStateTransfer,简称REST,中文:表示层状态转移)是RoyFielding博士在20......
  • 解决Swagger UI 中文乱码问题
    ......
  • Swagger跟rest有什么区别?
    Swagger跟rest有什么区别? 我的答案:REST是指导思想,Swagger是实现方式。 AI的答案:Claude-2解释如下:REST是一种软件架构风格,它定义了一组设计原则和约束条件。REST是概念性的,它更像是一个指导思想和设计理念,不是一个具体的实现技术或标准。Swagger是一组开源工具,用于......
  • 若依集成knife4j实现swagger文档增强
    若依集成knife4j实现swagger文档增强本期全是干货,这里我就当你用的非常熟练了,在ruoyi-admin模块中pom文件里加入以下依赖 注:引用knife4j-spring-boot-starter依赖,项目中的swagger依赖若不用就可以删除了。<!--集成knife4j实现swagger文档增强--><dependen......