Swagger-使用教程(详细)

2023-11-12

Swagger

Swagger官网:https://swagger.io/

Swagger是一款 RESTful 风格的 Web 服务框架

那么问题来了 什么是RESTful?

RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或 JSON格式定义。

在这里插入图片描述

1.导入依赖

 <dpendency>
           <groupId>com.github.xiaoymin</groupId>
           <artifactId>knife4j-spring-boot-starter</artifactId>
           <version>3.0.3</version>
</dependency>

2.编写Swagger配置类

在这里插入图片描述

@Configuration //配置类
@EnableSwagger2 //启⽤Swagger
public class SwaggerConfig {
    /**
     * 构建⽂档的基本信息
     */
    public ApiInfo createApi() {
        return new ApiInfoBuilder().
                // 设置页面标题
                        title("xxx项⽬的接⼝⽂档")
                // 设置接口描述
                .description("xxx项⽬是")
                // 设置联系方式
                .contact(new Contact("name", "https://blog.csdn.net/weixin_51779902?spm=1010.2135.3001.5343",
                        "0000@qq.com"))
                // 设置版本
                .version("1.0")
                //构建
                .build();
    }
    /**
     * 就是ioc创建实例 修饰⽅法 ⽅法必须返回对象
     */
    @Bean //等同于<bean> 配合@Configuration 会吧⽅法的返回值存储到IOC容器
    public Docket createDocket() {
        //SWAGGER_2:swagger版本  指定构建api文档的详细信息的方法:apiInfo()
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(createApi())
                //   RequestHandlerSelectors选择类注解方式 生成指定注解文档
                .select().apis(RequestHandlerSelectors.
                        withClassAnnotation(Api.class)).build();
    }
}

3.配置实体类

在这里插入图片描述

@ApiModelProperty(value = "主键" ) //修饰实体类的属性 默认是false
@ApiModelProperty(value = "账户",required =true ) //修饰实体类的属性
@ApiModelProperty(value = "密码",required =true ) //修饰实体类的属性

4.使用Swagger

在这里插入图片描述

@RestController
@RequestMapping("/api/manger/")
@Api(tags = "管理员的相关操作") //修饰类,为类加接口说明
public class MangerController {
    @Autowired
    private MangerService service;

    @ApiOperation(value = "新增",notes = "实现账户的新增")//修饰⽅法,为⽅法加说明
    @PostMapping("save.do")
    public R save(Manger manger){
       return service.save(manger);
    }

    @ApiOperation(value = "查询所有",notes = "实现所有账户的数据")
    @GetMapping("all.do")
    public R all(){
        return service.all();
    }
}

4.在application.yml配置

spring:
  profiles:
    active: dev
  mvc:
    pathmatch:
      matching-strategy: ANT_PATH_MATCHER  #防⽌swagger报错

5.运行测试

加账户密码

# swagger配置密码
knife4j:
  # 开启增强配置
  enable: true
      # 开启SwaggerBasic认证功能,默认是false
  basic:
    enable: true
    # Basic认证用户名
    username: test
    # Basic认证密码
    password: 123
http://localhost:8080/doc.htm

6.效果

在这里插入图片描述

上传文件注解:@RequestPart

public String upload(@RequestPart MultipartFile file, HttpServletRequest request) throws IOException {

Swagger常⽤注解:

@Api(tags = “说明信息”) 修饰类,控制层的类,为类加注释内容,通过tags属性

@ApiOperation(value = “⽅法说明”,notes = “⽅法详细介绍”) 修饰⽅法,映射⽅法,为⽅法加注释内容

@ApiParam(value=“参数的说明”) 修饰⽅法的参数,为参数加说明

@ApiModelProperty(value = “参数的说明”,required = 是否必须传递) 修饰实体类的属性

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swagger-使用教程(详细) 的相关文章

  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • 如何通过 javaconfig 使用 SchedulerFactoryBean.schedulerContextAsMap

    我使用 Spring 4 0 并将项目从 xml 移至 java config 除了访问 Service scheduleService 带注释的类来自QuartzJobBean executeInternal 我必须让它工作的 xml 位
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • Spring AspectJ 在双代理接口时失败:无法生成类的 CGLIB 子类

    我正在使用Spring的
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • Hibernate 的 PersistentSet 不使用 hashCode/equals 的自定义实现

    所以我有一本实体书 public class Book private String id private String name private String description private Image coverImage pr
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • MySQL忘记密码肿么办?教你一招!

    1 当我们在使用mysql数据库时 如果忘记密码会显示下图情况 ERROR 1045 28000 Access denied for user root localhost using password YES 2 解决方案 一般来说我们有
  • Ubantu安装mongodb,开启远程访问和认证

    最近因为项目原因需要在阿里云服务器上部署MongoDB 操作系统为Ubuntu 网上查阅了一些资料 特此记录一下步骤 1 运行apt get install mongodb命令安装MongoDB服务 如果提示找不到该package 说明ap
  • 比C语言还快20%!Mojo首个大模型开放下载,性能达Python版250倍

    明敏 发自 凹非寺量子位 公众号 QbitAI 专为AI而来的新语言Mojo 推理LLaMA2性能比Python提升250倍 比C语言也要快上20 上周五才开放下载 Mojo这么快就自证实力了 要知道 之前官方号称Mojo可以比Python
  • C语言 如何将一个数组a赋给数组b

    采用遍历赋值的方法
  • LVDS接口液晶屏定义(lcd)

    转载于 https blog csdn net linphusen article details 6389032 LVDS接口液晶屏定义 LVDS接口又称RS 644总线接口 20PIN单6定义 1 电源2 电源3 地 4 地 5 R0
  • 丁鹿学堂:前端异步进阶之Rxjs的使用

    响应式编程 Rx 全称Reactivbe Extension 指的是实践响应式编程的一套工具 Rx其实是一个大家庭 针对不同的语言都有适配 最早是微软的c 我们前端关注的是js余元 就是RxJS RxJS 的特点 数据流抽象了很多现实问题
  • pandas 数据类型之 DataFrame

    Python 官网 https www python org 这里 才 python 前沿 可惜是英文原版 所以 我要练习英文阅读 我的CSDN主页 My Python 学习个人备忘录 我的HOT博 老齐教室 自学并不是什么神秘的东西 一个
  • 初涉Rx套餐 之RxBinding(让你的事件流程更清晰)

    转载请注明出处 王亟亟的大牛之路 最近下班回家都在WOW 周末就爆肝 感觉人都要GO DIE了 昨天下午看了看RxBinding相关的功能感觉还是蛮强大的 所提供的API也是相当丰富 基本Rx套餐都是互通的 然后就把之前的Rx例子翻出来重新
  • AE与AO的区别

    在ArcGis9 0之前 ArcObject还不是一个独立的产品 一直捆绑在Desktop产品中 只要你购买了desktop产品中的一个 你就可以使用arcboject开发 从ArcGis9 0开始 ESRI公司推出了ArcGis Engi
  • web自动化测试框架落地实施全过程-测试环境搭建 (Selenium+Python)

    一 什么是web自动化测试 Web自动化测试是指使用自动化工具模拟用户在Web浏览器中执行的操作 通过编写脚本来自动化执行测试用例 以验证Web应用程序的功能 性能和兼容性等方面的质量 其主要目的是降低测试成本和时间 并提高测试效率和准确性
  • 使用selenium启动谷歌Chrome浏览器

    1 首先pip安装selenium pip install selenium 2 下载chromedriver驱动 1 打开自己电脑上的谷歌浏览器 查看版本号 然后chromedriver的版本一定要与Chrome的版本一致 不然下载不对应
  • 格式化并挂载ubi文件系统过程详解

    1 UBI文件系统介绍 1 UBI文件系统是基于MTD子系统的 内核必须要先支持MTD子系统 2 UBI文件系统适用于Nand flash 是可读写的文件系统 2 内核中使能UBI 2 1 使能UBI设备驱动 Location
  • 小问题解决方案

    目录 error CS0246 未能找到类型或命名空间名称 DllImport 是否缺少 using 指令或程序集引用 其他信息 对 PInvoke 函数 useQtDllTest1 useQtDllTest1 Form1 screenSh
  • oracle用户权限

    oracle用户权限 sys 数据库超级用户 必须以sysdba的身份进行登录的 1 创建新用户 create user user name identified by password default tablespace tablesp
  • ChatGPT调研报告:发展到今天这一步,哪个职业最慌?

    ChatGPT的流行 让AIGC受到了空前的关注 AIGC 即 AI Generated Content 是指利用人工智能技术来生成内容 比如AI写作 AI绘画 AI编程 AI语音合成等 就在3月29日 一封来自美国研究机构Future o
  • zabbix 调用api 批量删除主机

    脚本名称 zabbix api py 脚本内容如下 usr bin env python coding utf 8 import json import sys import urllib2 import argparse from url
  • TypeScript中any、unknown、never和void有什么区别?

    any 任意类型的变量 unknown 表示未知类型 unknown与any类似 但使用前必须进行断言或守卫 never 永不存在的值的类型 void 无任何类型 没有类型 用于函数时 never表示函数用于执行不到返回值那一步 抛出异常或
  • 植物图像识别python_python实现图像识别功能

    本文实例为大家分享了python实现图像识别的具体代码 供大家参考 具体内容如下 usr bin env python from PIL import Image import pytesseract url img denggao jpe
  • 什么是IDS?

    1 什么是IDS IDS是 入侵检测系统 intrusion detection system 简称 IDS 是一种对网络传输进行即时监视 在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备 它与其他网络安全设备的不同之处便在于 I
  • Swagger-使用教程(详细)

    Swagger Swagger官网 https swagger io Swagger是一款 RESTful 风格的 Web 服务框架 那么问题来了 什么是RESTful RESTFUL是一种网络应用程序的设计风格和开发方式 基于HTTP 可