2 Swagger3 HelloWorld实现 结合SpringBoot2

2023-10-30

第一步:我们新建一个SpringBoot项目;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Fj9cOYq-1632300176273)(C:\Users\java1234\Desktop\Swagger\课件\Swagger课件.assets\image-20210922152223291.png)]

加一个Spring Web依赖

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7IGmSAV6-1632300176276)(C:\Users\java1234\Desktop\Swagger\课件\Swagger课件.assets\image-20210922152355713.png)]

加下Swagger依赖:

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

这里用的是 springfox,Swagger 可以看作是一个遵循了 OpenAPI 规范的一项技术,而 springfox 则是这项技术的具体实现。

类似 JDBC是一套技术规范,各大数据库都有JDBC的实现;

最终项目pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.java1234</groupId>
    <artifactId>swagger-test2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>swagger-test2</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

第二步:开启Swagger

在 Spring Boot 的启动类添加 @EnableOpenApi 注解,开启 Swagger支持;

package com.java1234;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.oas.annotations.EnableOpenApi;

@EnableOpenApi
@SpringBootApplication
public class SwaggerTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(SwaggerTestApplication.class, args);
    }

}

第三步:新建HelloWorldController.java控制器类

package com.java1234.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author java1234_小锋
 * @site www.java1234.com
 * @company 南通小锋网络科技有限公司
 * @create 2021-09-22 15:46
 */
@RestController
public class HelloWorldController {

    @RequestMapping("/helloWorld")
    public String helloWorld(){
        return "helloWorld";
    }
}

启动项目,浏览器输入:http://localhost:8080/helloWorld

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IXdRw8K7-1632300176277)(C:\Users\java1234\Desktop\Swagger\课件\Swagger课件.assets\image-20210922154929806.png)]

没问题;

第四步:访问swagger-ui,查看接口文档

浏览器访问:http://localhost:8080/swagger-ui/

显示如下图:主要三大区域,分组定义信息区块,API文档上信息区块以及最重要的接口定义信息区块;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rKnxfyCJ-1632300176278)(C:\Users\java1234\Desktop\Swagger\课件\Swagger课件.assets\image-20210922160016663.png)]

展开HelloWorldController接口定义:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-spR23CDP-1632300176279)(C:\Users\java1234\Desktop\Swagger\课件\Swagger课件.assets\image-20210922160223673.png)]

这里我们能看到枚举了所有可能的请求类型,因为我们用了@RequestMapping,以及请求地址/helloWorld,我们再点开任意一个请求,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j8opGNir-1632300176280)(C:\Users\java1234\Desktop\Swagger\课件\Swagger课件.assets\image-20210922160555732.png)]

我们可以看到,接口没有参数,返回值是String类型;

这里描述了完整的接口定义信息;前端开发人员一目了然,假如接口定义变化,前端开发人员刷新下swagger-ui就能及时看到,比起以往的人工编写接口文档方便很多;

第五步:Swagger注解描述接口

在接口描述的时候,控制器类,以及方法,参数,返回值等,默认的话,是英文无备注信息,可能会让前端开发人员看起来吃力,会增加沟通成本;

Swagger提供一套注解,我们给接口添加中文注释;

我们在类上添加@API注解,以及在方法上添加@ApiOperation注解

package com.java1234.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author java1234_小锋
 * @site www.java1234.com
 * @company 南通小锋网络科技有限公司
 * @create 2021-09-22 15:46
 */
@Api(tags="helloWorld类测试")
@RestController
public class HelloWorldController {

    @ApiOperation("测试方法")
    @RequestMapping("/helloWorld")
    public String helloWorld(){
        return "helloWorld";
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f5SFue1E-1632300176280)(C:\Users\java1234\Desktop\Swagger\课件\Swagger课件.assets\image-20210922162904883.png)]

重启项目,刷新swagger-ui,发现已经以后中文注释了;

说明:这个是锋哥的Swagger3备课笔记,等备课完,会发布配套的视频教程,如有需要,可以先加锋哥WX:java1239 欢迎白嫖

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

2 Swagger3 HelloWorld实现 结合SpringBoot2 的相关文章

随机推荐

  • maven pox.xml记录

  • STM32中SPI数据读取、调试过程中问题的探讨。

    1 SPI总线读取数据 许多STM32的SPI数据读取存在问题 举个例子 设备现需要3个命令 通过命令字才能将我们需要的数据输出 则SPI通讯过程就是 D0 gt D1 gt D2 gt 空数据 0x00 gt 读取数据 然而 由于SPI结
  • 超越DALL·E

    目录 摘要 引言 方法 文本条件扩散模型 无分类器指导的微调 图像绘画 带噪 CLIP 模型 结果 欢迎关注 CVHub 官方微信公众号 Title GLIDE Towards Photorealistic Image Generation
  • RabbitMQ内存监控及自动重启的shell脚本

    RabbitMQ内存监控及自动重启 功能简介 Shell脚本 systemd托管 这个脚本是用来监控 RabbitMQ 进程的内存占用情况 如果内存占用超过设定的阈值并且达到设定的检查次数 则自动重启 RabbitMQ 服务 功能简介 脚本
  • SaaS、PaaS、IaaS云服务模式和商业云平台设计与建设方案

    1 云计算的三种服务模式 云计算是一种新的计算资源使用模式 云端本身还是 IT 系统 所以逻辑上同样可以划分为这四层 底三层可以再划分出很多 小块 并出租出去 这有点像立体停车房 按车位大小和停车时间长短收取停车费 因此 云服务提供商出租计
  • TS 错误property does not exist on type Object

    在TypeScript中如果按JS的方式去获取对象属性 有时会提示形如Property value does not exist on type Object 的错误 具体代码如下 var obj Object Object create
  • JAVA代码规则对照表

    JAVA代码规则对照表 Try with resources should be used 应该使用带有资源的Try with resources Creating cookies without the secure flag is se
  • java 实现 AES 加解密

    package com dechnic tfoms util import org apache shiro crypto hash Sha256Hash import org slf4j Logger import org slf4j L
  • 渗透学习 信息收集

    人生在世三万天 有酒有肉小神仙 小白入坑学废集6 基本信息收集 信息收集 域名信息 敏感目录 端口扫描 旁站C段 整站分析 谷歌hacker URL采集 后台查找 CDN绕过方法 就算我不成器 你又是个什么东西 基本信息收集 信息收集 域名
  • 用Python进行数据分析——起步

    一 安装Anaconda与Jupyter notebook 在学习一门编程语言之前 选一个称手的工具至关重要 对于用Python进行数据分析而言 Anaconda与Jupyter notebook目前已成为标准环境 1 咱们知道conda是
  • js中的with()用法

    with语句 作用域名 一个可以按序检索的对象列表 通过它可以进行变量名的解析 with语句用于临时拓展作用域链 语法如下 with object statement method 这条语句将object添加到作用域链的头部 然后执行函数体
  • linux shell 的多行注释

    解决方案之一 强硬的注释 首先介绍方法 我们在C C 中 可以使用 的方式注释掉整块的代码 在Linuxshell脚本中 我们有一个变通的方法 有效的代码段 lt
  • [2018 徐州 网络赛

    题目来源 After Incident a feast is usually held in Hakurei Shrine This time Reimu asked Kokoro to deliver a Nogaku show duri
  • I/O模型

    参考链接 I O多路复用 IO多路复用之select poll epoll详解 epoll讲解 深入Go语言网络库的基础实现 I O模型 I O模型 1 1 阻塞I O模型 最常用的I O模型 默认情况下 所有文件操作都是阻塞的 比如I O
  • 【华为OD机试】玩牌高手(python, java, c++, js)

    玩牌高手 前言 本专栏将持续更新华为OD机试题目 并进行详细的分析与解答 包含完整的代码实现 希望可以帮助到正在努力的你 关于OD机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email nan
  • ⭐算法入门⭐《线性枚举》简单10 —— LeetCode 剑指 Offer 17. 打印从1到最大的n位数

    文章目录 一 题目 1 题目描述 2 基础框架 3 原题链接 二 解题报告 1 思路分析 2 时间复杂度 3 代码详解 三 本题小知识 四 加群须知 一 题目 1 题目描述 输入数字 n n n 按顺序打印出从 1
  • 复制指定文件夹中的文件到另一个文件夹中(简单详细)

    操作系统 ubuntu 语言 python 要求 从文件夹中取出所有索引为 6的文件保存到新的文件夹中 完整代码如下 import os import re import shutil def copyfiles source files
  • 基于Java的仓库管理系统

    博主介绍 22届程序员一枚 源码获取加V qq2056908377 页面样式 仓储管理系统 本设计为一个基本的仓库管理系统 程序功能比较简单 贴近实际 系统用户权限控制采用RBAC0模型 权限 角色 用户 既提升了效率 也有很大的拓展性 业
  • MockMvc 单元测试样例

    前言 老实我以前也没写过单元测试 小公司没要求 都是postman自测OK就提交了 这里第一次写 还废了点时间 做个笔记下次直接抄吧 jar包版本号
  • 2 Swagger3 HelloWorld实现 结合SpringBoot2

    第一步 我们新建一个SpringBoot项目 加一个Spring Web依赖 加下Swagger依赖