首页 > 其他分享 >Swagger的介绍以及使用

Swagger的介绍以及使用

时间:2024-03-10 22:00:12浏览次数:30  
标签:knife4j 接口 controller 文档 介绍 使用 Swagger com

今天学习了Swagger。Swagger是一个规范且完整的框架,用于生成、描述、调用以及可视化RESTful风格的web服务。
其主要的功能:

  1. 有利于进行前后端分离式开发,有利于团队协作
  2. 自动生成接口文档,缓解编写接口文档的压力
  3. 进行功能测试
    现如今Spring已经将Swagger纳入自身的标准,建立了Spring-swagger项目,现在叫Springfox。通过在项目中引入Springfox ,即可非常简单快捷的使用Swagger。knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!目前,一般都使用knife4j框架。

对于Swagger的使用步骤:

  1. 导入knife4j的maven坐标
<dependency>
   <groupId>com.github.xiaoymin</groupId>
   <artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
  1. 在配置类中加入knife4j相关配置
@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("com.sky.controller"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
  1. 设置静态资源映射,否则接口文档页面无法访问
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}

需要注意两个位置:

  1. 设置静态资源映射中,如果不去设置静态资源映射的话,那么在输入接口文档访问路径中不会去看到自动生成的接口文档的页面,会报一个404的错误
  2. 在进行配置类中加入knife4j相关配置,.apis(RequestHandlerSelectors.basePackage("com.sky.controller"))这一块会进行该路径的包及其子包扫描中,如果输入的路径错误,那么在生成时,会出现接口文档的页面,但是不会出现employee-controller的选项,也就不会出现信息。

标签:knife4j,接口,controller,文档,介绍,使用,Swagger,com
From: https://www.cnblogs.com/yyNoBug/p/18064967

相关文章

  • pytorch_lightning的使用
    Reference1.【PyTorchLigntning】快速上手简明指南2.PytorchLightning完全攻略3.PyTorchLightning教程四:超参数的使用4.小风_的CSDN......
  • C语言基础-2、函数的定义与使用
    一、函数的定义和使用函数是一块代码,接受零个或多个参数,做一件事情,并返回零个或一个值函数定义:voidsum(intbegin,inend)//函数头;void:返回类型;sum:函数名,intbegin:参数表{ .......//函数体}1、调用函数函数名(参数值);ex1:#include<stdio.h>voidcheer(){ pr......
  • 「Ubuntu使用」Ubuntu下安装wps及缺少字体如何处理?
    注:此文参考CSDN链接:https://blog.csdn.net/u010164190/article/details/127272815微软Office没有Linux版,好在Wps有Linux版本,除了宏不能使用以外,使用起来基本没什么问题。但安装完成后会提示缺失字体,这些字体是Windows自带的字体,在Windows环境不会有问题,但在Ubuntu系统下会提示。......
  • Go语言精进之路读书笔记第45条——使用模糊测试让潜在bug无处遁形
    模糊测试就是指半自动地为程序提供非法的、非预期、随机的数据,并监控程序在这些输入数据下是否会出现崩溃、内置断言失败、内存泄漏、安全漏洞等情况。45.1模糊测试在挖掘Go代码的潜在bug中的作用DmitryVyukov2015年使用go-fuzz在Go标准库中发现了137个bug。45.2go-fuzz的......
  • Go语言精进之路读书笔记第48条——使用expvar输出度量数据,辅助定位性能瓶颈点
    48.1expvar包的工作原理Go标准库中的expvar包提供了一种输出应用内部状态信息的标准化方案,这个方案标准化了以下三方面内容:数据输出接口形式输出数据的编码格式用户自定义性能指标的方法import(_"expvar""fmt""net/http")funcmain(){http.Hand......
  • Go语言精进之路读书笔记第47条——使用pprof对程序进行性能剖析
    47.1pprof的工作原理1.采样数据类型(1)CPU数据(2)堆内存分配数据(3)锁竞争数据(4)阻塞时间数据2.性能数据采集的方式(1)通过性能基准测试进行数据采集gotest-bench.xxx_test.go-cpuprofile=cpu.profgotest-bench.xxx_test.go-memprofile=mem.profgotes......
  • Go语言精进之路读书笔记第49条——使用Delve调试Go代码
    49.1关于调试,你首先应该知道的几件事1.调试前,首先做好心理准备2.预防bug的发生,降低bug的发生概率(1)充分的代码检查(2)为调试版添加断言(3)充分的单元测试(4)代码同级评审3.bug的原因定位和修正(1)收集“现场数据”(2)定位问题所在(3)修正并验证49.2Go调试工......
  • 「Ubuntu使用」安装DEEPIN-WEIXIN
    以下内容源自:https://blog.csdn.net/u010072043/article/details/126370707详细可使用软件参考:https://deepin-wine.i-m.dev/ 1.更新软件源sudoaptupdate2.添加仓库首次使用时,需要运行如下一条命令将移植仓库添加到系统中。(执行后要输入管理密码)wget-O-https:......
  • SpringBoot3.x使用Druid
    SpringBoot3.x使用DruidBiliBili视频官网:druid/druid-spring-boot-starteratmaster·alibaba/druid参考文章SpringBoot3集成Druid连接池详解起步安装最新版本查询:https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-3-starter注意:Druid配......
  • 要确保请求在一次会话中被转发到相同的后端服务器上,可以使用 Nginx 的 ip_hash 或 sti
    要确保请求在一次会话中被转发到相同的后端服务器上,可以使用Nginx的ip_hash或sticky模块来实现。ip_hash模块:ip_hash 模块使用客户端IP地址作为哈希键,将同一IP地址的请求始终转发到相同的后端服务器。要启用 ip_hash 模块,只需在Nginx配置文件的 http 块或......