Swagger的介绍与使用(一)

news2024/9/24 13:22:58

一. 简介

OpenAPI 规范(以前称为 Swagger 规范)是 REST API 的 API 描述格式。

Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。

        Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口类似,Swagger 消除了调用服务时可能会有的猜测。

作用

API 描述自身结构的能力是 OpenAPI 所有出色之处的根源。编写完成后,OpenAPI 规范和 Swagger 工具可以通过各种方式进一步推动 API 开发:

  • 设计优先用户:使用 Swagger Codegen 为您的 API 生成服务器存根。剩下的唯一事情就是实现服务器逻辑 - 您的 API 已经准备好上线了!
  • 使用 Swagger Codegen 为您的 API 生成 40 多种语言的客户端库
  • 使用 Swagger UI 生成交互式 API 文档,让用户可以直接在浏览器中试用 API 调用。
  • 使用规范将 API 相关工具连接到您的 API。例如,将规范导入 SoapUI 以为您的 API 创建自动化测试。

优势

  • 支持 API 自动生成同步的在线文档:使用 Swagger 后可以直接通过代码生成文档,不再需要自己手动编写接口文档了,对程序员来说非常方便,可以节约写文档的时间去学习新技术。
  • 提供 Web 页面在线测试 API:光有文档还不够,Swagger 生成的文档还支持在线测试。参数和格式都定好了,直接在界面上输入参数对应的值即可在线测试接口。

二. 基本使用

1. 导入相关依赖

通过在项目中引入 Springfox,可以扫描相关的代码,生成该描述文件,进而生成与代码一致的接口文档和客户端代码。

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

2. 开启 Swagger

  • 新建一个 SwaggerConfig 类

  • 添加 @Configuration:表明这是一个配置类

  • 开启 Swagger2

1> 编写配置文件 

在配置文件 config 目录下,添加 swagger 的配置文件 SwaggerConfig.java

@Configuration//标记配置类
@EnableSwagger2//开启在线接口文档
public class SwaggerConfig {
}

2> 测试 Swagger2 是否启动成功 

这个时候 Swagger 已经算是整合到项目之中了,可以启动下服务,输入:http://localhost:8089/swagger-ui.html 即可查看 swagger 文档。

可以看到 Swagger 文档中大概有这四类信息

  • 基本信息
  • 接口信息
  • 实体类信息

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1993337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Journyx项目管理软件 soap_cgi.pyc XXE漏洞复现

0x01 产品简介 Journyx-Journyx成立于1996年,提供自托管项目管理解决方案ProjectXecute。主要功能包括资源跟踪、待办事项列表、任务分配以及与MS Project的集成。要运行ProjectXecute,需要Windows 2003或更高版本、IIS Web服务器和Intel处理器。也可以在Linux、Solaris、AI…

AI资本泡沫要来了么?——Coatue EMW 2024会议摘要

引言 随着生成式人工智能的快速发展&#xff0c;科技领域正经历着一场前所未有的变革。然而&#xff0c;伴随这一热潮而来的&#xff0c;是关于AI资本泡沫的激烈讨论。历史上&#xff0c;每一次技术革命都带来了巨大机遇&#xff0c;同时也伴随着泡沫和风险。本文将通过Coatue…

windows远程连接银河麒麟系统中的人大金仓数据库

以下来自人大金仓的官方&#xff1a; 概述 由微软提出的ODBC&#xff08;开放式数据库互连&#xff09;&#xff0c;为访问数据库提供统一的接口&#xff08;API&#xff09;。其调用流程为&#xff1a;首先应用程序调用驱动管理器以加载与数据库相对应的ODBC驱动&#xff0c;…

P35算数转换作业讲解

1.单选题 B 2.单选题 A 3.编程题 4.编程题 5.编程题 6.编程题 1.单选题 D

Java八股文面试全套真题-下

Java八股文面试全套真题-下 七、Java多线程7.1、线程的基础知识7.1.1、线程和进程的区别&#xff1f;7.1.2、并行和并发有什么区别&#xff1f;7.1.3、创建线程的四种方式7.1.4、Runnable 和 Callable有什么区别7.1.5、线程的 run()和 start()有什么区别&#xff1f;7.1.6、线程…

GLM大模型的机器翻译能力测试

背景介绍 最近想对GLM-4今年发布的几个大模型 glm-4-0520&#xff0c;glm-4-air以及glm-4-flash简单评测一下它们的机器翻译能力&#xff0c;由于这几个大模型的容量和训练数据都有区别&#xff0c;所以它们的翻译能力也是不同的。我们这里就分别选择一些有趣的&#xff0c;有…

Qt使用lupdate工具生成.ts文件

Qt提供了lupdate工具&#xff0c;用于从源代码中提取需要翻译的字符串【1】&#xff0c;并生成或更新.ts文件 注解【1】&#xff1a;使用tr()函数&#xff08;或者QCoreApplication::translate()等其他相关的翻译函数&#xff09;来标记所有需要翻译的文本。例如&#xff1a; …

MySQL4多表查询 内连接

多表查询 数据准备 CREATE DATABASE db4; USE db4; -- 创建部门表 create table if not exists dept(deptno varchar(20) primary key , -- 部门号name varchar(20) -- 部门名字 );-- 创建员工表 create table if not exists emp(eid varchar(20) primary key , -- 员工编号…

【蝉联】摩斯再次获得“中国隐私计算市场份额第一”

蝉联第一 8月2日&#xff0c;全球领先的IT市场研究和咨询公司IDC发布了《中国隐私计算平台厂商市场份额&#xff0c;2023》报告。蚂蚁集团凭借商用隐私计算平台摩斯&#xff08;MORSE&#xff09;&#xff0c;以 35.3%的市场份额蝉联第一。 2023年&#xff0c;中国隐私计算平台…

CSP 2023 普及组第一轮 - CSP/S 2023初试题 基础部分解析

第 1 题 在 C 中&#xff0c;下面哪个关键字用于声明一个变量&#xff0c; 其值不能被修改?&#xff08;B) A. unsigned B. const C. static D. mutable 【const声明的变量不可修改】 第 2 题 八进制数 12345670(8) 和 07654321(8) 的和为&#xff08;D&#xff09; A. 222222…

智能工单派单:助力家政、售后服务、维修安装等行业高效管理

在家政、售后服务、维修安装等行业&#xff0c;任务的派单、管理和客户服务一直是关键环节。自从我们公司使用了搭贝低代码平台的工单派单应用&#xff0c;这些流程变得更加流畅和高效&#xff0c;显著提升了整体运营效率。 1. 提高工作效率 &#x1f4c8; 通过搭贝平台&#…

力扣面试经典算法150题:多数元素

多数元素 今天的题目是力扣面试经典150题中的数组的简单题: 多数元素 题目链接&#xff1a;https://leetcode.cn/problems/majority-element/description/?envTypestudy-plan-v2&envIdtop-interview-150 题目描述 给定一个大小为 n 的数组 nums&#xff0c;其中包含 n 个…

ESP32开发板单向点对点ESP-NOW无线通信

ESP32开发板单向点对点ESP-NOW无线通信 简介读取ESP32接收方Receiver的MAC地址ESP32发送方Sender程序ESP32接收方Receiver程序ESP-NOW通信验证总结 简介 本例程通过两个ESP32开发板实现单向点对点ESP-NOW无线通信&#xff0c;一个ESP32开发板作为Sender发送方&#xff0c;另一…

CSP-J复赛 模拟题6 解析

此题为水题不讲解 根据无解析写代码1&#xff1a; #include <bits/stdc.h> using namespace std; string s; int main(){getline(cin,s);int lens.length();for(int i0;i<len;i){if(s[i]>A && s[i]<Z){s[i]32;}else if(s[i]>a && s[i]<z…

python自动化笔记:配置文件.ini及yml文件

目录 一、.ini配置文件1.1、ini编写格式1.2、读取.ini配置文件的数据1.3、编辑&#xff1a;写入和删除&#xff08;了解即可&#xff09; 二、yaml文件2.1、yaml编写语法规则2.2、yaml三种数据结构2.3、yaml文件的读取和写入 一、.ini配置文件 后缀名.ini 用于存储项目全局配置…

【单片机开发软件】使用VSCode开发STM32环境搭建

&#x1f48c; 所属专栏&#xff1a;【单片机开发软件技巧】 &#x1f600; 作  者&#xff1a; 于晓超 &#x1f680; 个人简介&#xff1a;嵌入式工程师&#xff0c;专注嵌入式领域基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大家&#xff1…

随笔-见字如面

不出意外&#xff0c;7月的工时干成了部门第一&#xff0c;36个人天。 昨天洗头的时候&#xff0c;揉了两下头发&#xff0c;看了一眼&#xff0c;手里全是碎发&#xff0c;吓了一跳&#xff0c;赶紧冲掉了&#xff0c;这内力又精进了。最近加班有些疲惫了&#xff0c;总是感觉…

MySQL笔记(十):MySQL管理

一、用户管理 #用户管理 -- 原因&#xff1a;当我们做项目开发时&#xff0c;可以根据不同的开发人员&#xff0c;赋给她相应的mysql操作权限。 -- 所以&#xff0c;mysql数据库管理人员&#xff08;root&#xff09;&#xff0c;根据需要创建不同的用户&#xff0c;赋给相应的…

SparkSQL中的JSON内置函数全解析

SparkSQL中的JSON函数快速入门 目录 SparkSQL中的JSON函数快速入门为什么需要JSON函数?SparkSQL JSON函数概览get_json_object: JSON字段提取利器json_tuple: 多字段提取神器from_json: JSON转结构化数据的桥梁to_json: 结构化数据转JSON的便捷工具schema_of_json: JSON Schem…

加密创投周期进化论(上篇):再造新世界

回到过去&#xff0c;选择决定命运。 作者&#xff1a;Wenser&#xff1b;编辑&#xff1a;郝方舟 出品 | Odaily星球日报&#xff08;ID&#xff1a;o-daily&#xff09; 2017 年 12 月&#xff0c;以太坊联创 Vitalik 在加密货币行业市值触及 5000 亿美元时&#xff0c;发出了…