首页 > 其他分享 >Swagger

Swagger

时间:2024-03-20 09:30:08浏览次数:16  
标签:knife4j springframework 文档 registry import Swagger Docket

Swagger

knife4j对swagger进行了封装,在访问在线接口文档YApi时在pom中导入knife4j的依赖即可。

Swagger可以在线查看你写的ajax请求。请求路径,请求参数等。还可以查看ajax请求后的响应数据。

swagger用法

1.导入knife4j的maven坐标(依赖)。

 <!--knife4j读取yapi接口文档-->
 <dependency>
     <groupId>com.github.xiaoymin</groupId>
     <artifactId>knife4j-spring-boot-starter</artifactId>
     <version>3.0.2</version>
 </dependency>

2.在配置类中加入knife4j的相关配置。

Config层(WebMvcConfiguration.class )----一般放在@Configuration配置类WebMvcConfiguration.class 中。

 /**
  * 通过knife4j生成接口文档
  * @return
  */
 @Bean
 public Docket docket() {
     ApiInfo apiInfo = new ApiInfoBuilder()
             .title("项目接口文档")
             .version("2.0")
             .description("项目接口文档")
             .build();
     Docket docket = new Docket(DocumentationType.SWAGGER_2)
             .apiInfo(apiInfo)
             .select()
             .apis(RequestHandlerSelectors.basePackage("controller包的路径"))
             .paths(PathSelectors.any())
             .build();
     return docket;
 }

3.设置静态资源映射,否则接口文档页面无法访问。

Config层(WebMvcConfiguration.class )----一般放在@Configuration配置类WebMvcConfiguration.class 中。

 /**
  * 设置静态资源映射
  * @param registry
  */
 protected void addResourceHandlers(ResourceHandlerRegistry registry) {
     registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
     registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
 }

 package com.sky.config;
 ​
 import com.sky.interceptor.JwtTokenAdminInterceptor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
 import springfox.documentation.builders.ApiInfoBuilder;
 import springfox.documentation.builders.PathSelectors;
 import springfox.documentation.builders.RequestHandlerSelectors;
 import springfox.documentation.service.ApiInfo;
 import springfox.documentation.spi.DocumentationType;
 import springfox.documentation.spring.web.plugins.Docket;
 ​
 /**
  * 配置类,注册web层相关组件
  */
 @Configuration
 @Slf4j
 public class WebMvcConfiguration extends WebMvcConfigurationSupport {
 ​
     @Autowired
     private JwtTokenAdminInterceptor jwtTokenAdminInterceptor;
 ​
     /**
      * 注册自定义拦截器
      *
      * @param registry
      */
     protected void addInterceptors(InterceptorRegistry registry) {
         log.info("开始注册自定义拦截器...");
         registry.addInterceptor(jwtTokenAdminInterceptor)
                 .addPathPatterns("/admin/**") //拦截路径
                 .excludePathPatterns("/admin/employee/login"); //
     }
 ​
     /**
      * 通过knife4j生成接口文档
      * @return
      */
     @Bean
     public Docket docket() {
         ApiInfo apiInfo = new ApiInfoBuilder()
                 .title("项目接口文档")
                 .version("2.0")
                 .description("项目接口文档")
                 .build();
         Docket docket = new Docket(DocumentationType.SWAGGER_2)
                 .apiInfo(apiInfo)
                 .select()
                 .apis(RequestHandlerSelectors.basePackage("controller路径"))
                 .paths(PathSelectors.any())
                 .build();
         return docket;
     }
 ​
     /**
      * 设置静态资源映射
      * @param registry
      */
     protected void addResourceHandlers(ResourceHandlerRegistry registry) {
         registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
         registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
     }
 }

运行springboot程序后:输入地址 :https://localhost:8080/doc.html

swagger常用注解

@Api:

用在类上,例如Controller,表示对类的说明。

事例:@Api(tags="类的作用")

@ApiModel:

用在类(实体类)上,用于用途的说明,例如entity,DTO,VO

事例:@ApiModel(description="实体类的作用")-----"xxxxxx时传入的数据模型 "

@ApiModelProperty:

用在属性上,描述属性信息

事例:@ApiModelProperty("说明")

@ApiOperation:

用在方法上,例如Controller的方法,说明方法的用途,作用。

事例:@ApiOperation(value="方法的作用")

标签:knife4j,springframework,文档,registry,import,Swagger,Docket
From: https://blog.csdn.net/weixin_59118777/article/details/136863784

相关文章

  • swagger配置
    1、注入依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId>......
  • Fastapi中Swagger UI加载缓慢的解决方案
    在国内网络经常遇到SwaggerUI加载缓慢的问题,这是由于SwaggerUI的CSS和JS代码源在国外导致的,所以我们的解决方法是更改SwaggerUI的CSS代码和JS代码源到国内的CND实现加速。这里以Fastapi框架的SwaggerUI加载缓慢举例:一、解决方法在main.py(入口代码)代码中新增如下代码:fromfa......
  • Swagger配置
    一定一定要注意各个模块的版本,否则会直接启动不起来或者报各种各样奇怪的错误!!!!版本:SpringBoot2.3.12Mybatis8.0.31swagger2.7.0导入Maven依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId>......
  • 【萌狼蓝天】swagger速成
    相关链接编辑器:https://editor.swagger.io/文档:https://openapi.apifox.cn/基础信息设置openapi:3.0.3info:title:后端服务接口description:|-##描述由萌狼蓝天创建##相关介绍`terOfServer`:服务隐私条款##相关连接......
  • Swagger的介绍以及使用
    今天学习了Swagger。Swagger是一个规范且完整的框架,用于生成、描述、调用以及可视化RESTful风格的web服务。其主要的功能:有利于进行前后端分离式开发,有利于团队协作自动生成接口文档,缓解编写接口文档的压力进行功能测试现如今Spring已经将Swagger纳入自身的标准,建立了Spring......
  • .NET WebAPI 控制器巧用 GroupName,让 Swagger UI 分类呈现华丽升级
    在日常开发.NETWebAPI项目时,Swagger是一个不可或缺的工具,用于自动生成和展示API文档。然而随着API数量的增长,SwaggerUI中的接口列表可能会变得相当繁杂,这无疑增加了开发者理解和使用的难度。为了解决这一问题,我们可以利用 GroupName 这一特性来对API控制器进行分类......
  • Swagger-自动生成接口文档
    Swagger官网:https://swagger.io/Swagger3是接口文档生成工具依赖pom.xml<dependency> <groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.4.0</version></......
  • .NET Core WebAPI项目部署iis后Swagger 404问题解决
    .NETCoreWebAPI项目部署iis后Swagger404问题解决前言之前做了一个WebAPI的项目,我在文章中写到的是Docker方式部署,然后考虑到很多初学者用的是iis,下面讲解下iis如何部署WebAPI项目。环境准备iisASPNETCoreModuleV2重点.NETCoreRuntimeiis的配置这里就不讲了,主要讲解......
  • swagger 请求返回的内容如果是private 则会返回空
    swagger有保护接口私有属性内容的功能,有的时候没有得到想要的结果,可能是结果不是开放的内容当前private请求结果改为public请求结果......
  • Django中的Swagger文档库--drf-spectacular
    在用django开发后端接口的时候,通常会面临写接口文档的问题,尤其项目大了之后,写文档就更加头疼了,如果能够在写完代码后,自动生成接口文档,那该多好啊所以,咱们这里要介绍一个比较厉害的库drf-spectacular这个库能够自动生成OpenApi3.0的接口文档,并给出目前比较流行的swaggerUI的......