当前位置: 首页 > news >正文

【swagger的部署和使用】

【swagger的部署和使用】

提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是springboot的使用。前后每一小节的内容是存在的有:学习and理解的关联性。【帮帮志系列文章】:每个知识点,都是写出代码和运行结果且前后关联上的去分析和说明(能大量节约您的时间)。

所有文章都*不会*直接把代码放那里,让您自己去看去理解。我希望我的内容对您有用而努力~


本文章是系列文章,技术栈内容为:【springboot+vue】【前后分离】
【详细图文,实操步骤分享,节约时间版】。最终完成一个商业化项目。内容有:
springboot知识
mybatisPlus知识
vue知识
node.js知识

本小节的内容是
springboot篇章 之 : 3.swagger的部署和使用
本小节-附一个小节(建议观看)(保证 主要章节内容篇幅不大,且不繁琐):
[RESTful风格]正传ing
REST(英文:Representational State Transfer)是现代Web服务开发中广泛采用的一种API设计规范)通过简洁、统一、标准化的方式实现分布式系统间的交互。正是有这个风格的规定和约束,才有一个swagger来提供这个服务

而swagger为接口管理工具,正好为前端和后端开发做一个 规范的 、 统一的 交互窗口和沟通窗口


文章目录

  • 【swagger的部署和使用】
  • 前言
  • 一、导入依赖
  • 二、准备环境和配置
  • 三、启动查看接口文档
    • 注意事项
  • 总结


前言

本文章为一个系列文章的第三节,目的是快速去实现一个前后分离 springboot+vue
所以是基于springboot来实现swagger的

所以,您需要有一个springboot项目,来部署您的swagger文档管理工具
创建idea的springboot链接:
【2025年】基于电脑的jdk1.8通过idea创建springboot2.x版本(非常简洁快速)
【上榜文章,一文搞定】现在springboot是3.x以上版本,jdk版本至少要求17.但是很多时候我们电脑是jdk1.8(求稳定性和安全性)。文本分享本机电脑1.8的jdk。idea如何非常简洁快速的创建springboot
文章里面也有 为什么只能是jdk17起和地址指定为阿里云报错的解决办法


一、导入依赖

在pom.xml里面添加依赖
放到dependencies标签中间

<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>

刷新maven
在这里插入图片描述

如果电脑第一次添加这个依赖,需要等待下载一会


二、准备环境和配置

根据02文章的结果,继续在工具类包utils里面创建一个类为:SwaggerConfig
在这里插入图片描述
编写代码:

package com.bbz.bbzspring.utils;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration // 告诉容器,这是配置类
@EnableSwagger2 //启动swagger功能
public class SwaggerConfig {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2)  // DocumentationType.SWAGGER_2 固定的,代表swagger2//.groupName("分布式任务系统") // 如果配置多个文档的时候,那么需要配置groupName来分组标识.apiInfo(apiInfo()) // 用于生成API信息 这里引用了下面的方法名字(对应的).select() // select()函数返回一个ApiSelectorBuilder实例,用来控制接口被swagger做成文档// 扫描指定包下的接口,最为常用.apis(RequestHandlerSelectors.basePackage("com"))//.withClassAnnotation(RestController.class) // 扫描带有指定注解的类下所有接口//.withMethodAnnotation(PostMapping.class) // 扫描带有指定注解的方法接口//.apis(RequestHandlerSelectors.any()) // 扫描所有// 选择所有的API,如果你想只为部分API生成文档,可以配置这里.paths(PathSelectors.any()//.any() // 满足条件的路径,该断言总为true//.none() // 不满足条件的路径,该断言总为false(可用于生成环境屏蔽 swagger)//.ant("/user/**") // 满足字符串表达式路径//.regex("") // 符合正则的路径).build();}/*** 用于定义API主界面的信息,比如可以声明所有的API的总标题、描述、版本* @return*/private ApiInfo apiInfo() {Contact contact = new Contact( //这个类是springfox包里面的作者类"我是作者帮帮志", // 作者姓名"https://csdn.net/", // 作者网址"xxx@xxx.com"); // 作者邮箱return new ApiInfoBuilder().title("帮帮志项目API") //  可以用来自定义API的主标题.description("帮帮志项目SwaggerAPI管理") // 可以用来描述整体的API.termsOfServiceUrl("这是例子:https://www.baidu.com") // 用于定义服务的域名(跳转链接).version("1.0") // 可以用来定义版本.license("Swagger-的使用教程").licenseUrl("https://.csdn.net").contact(contact)//传入作者对象参数.build(); //}
}

三、启动查看接口文档

正常启动springboot项目
访问网址:http://localhost:8080/swagger-ui.html

在这里插入图片描述

您有几个controller类(关联前端的类) 就生成几个菜单。
每个菜单点开:类里面有几个方法,就生成几个对应方法的图标。用不同的颜色标记不同的提交方式

在这里插入图片描述
这些刚好是我上一个文章 写的controller类和对应里面的四个方法

注意事项

如果您不能访问这个网址(固定的:http://localhost:8080/swagger-ui.html)
需要在springboot的配置文件application.properties里面添加:

spring.mvc.pathmatch.matching-strategy=ant_path_matcher

因为:
在springboot2.6.0中将SpringMVC 默认路径匹配策略从AntPathMatcher 更改为PathPatternParser,导致出错,解决办法是切换会原先的AntPathMatcher。所以springboot2.6.0以后的加上这个就可以了


如果进入网站,所有都正常,但是下面显示:No operations defined in spec!
表示它认为您没有任何controller类和方法
但是,您又确实写了,swagger却没有在网页文档里面显示,那么检查:
1.swagger配置类里面的.apis(RequestHandlerSelectors.basePackage(“com”)) 是不是写错范围了
2.Controller类没有被扫描进容器,所以容器认为当前项目没有Controller类
3.如果您是多个项目与项目之间的关联(功能是一个springboot项目,启动是另一个springboot)。项目引用关系检查一下
4.swagger的配置文件类是不是写错地儿了。容器压根就没有去扫描swagger类


总结

说明一下:整个这个系列实现前后分离的springboot+vue项目。序号文章一共也就10几篇,只有核心图文重点操作步骤来实现这个目标(基本上您边看边写:一个小时或者一上午就能跟着一起手搓一个前后分离项目,然后您可以自行添加功能和内容在您项目里面)

其他扩展细节知识点,本系列省略了(或者有链接)如:
swagger的详细注解,分别写在类上面和方法上面,这些信息会在网页文档里面显示:这个类是干嘛的,这个方法是干嘛的,方法需要什么参数,方法执行完毕,会怎么样等等(后续会上传详细版swagger)

(会陆续更新非常多的IT技术知识及泛IT的电商知识,可以点个关注,共同交流。ღ( ´・ᴗ・` )比心)
(也欢迎评论,提问。 我会依次回答~)

相关文章:

  • 【Prompt工程—文生图】案例大全
  • 常见的卷积神经网络列举
  • [Token]What Kind of Visual Tokens Do We Need? AAAI2025
  • 搭建spark伪分布集群
  • spark行动算子
  • MCP Client适配DeepSeek
  • 时间序列数据集构建方案Pytorch
  • Android学习总结之网络篇补充
  • ACE-Step:扩散自编码文生音乐基座模型快速了解
  • ActiveMQ 源码剖析:消息存储与通信协议实现(二)
  • 使用 Couchbase Analytics Service 的典型步骤
  • [GESP202406 七级] 黑白翻转
  • FAISS(Facebook AI Similarity Search)
  • 单片机-STM32部分:6、不同编程方式-寄存器、标准库、HAL库、LL库
  • Scrapy框架之Scrapyd部署及Gerapy分布式爬虫管理框架的使用
  • MCU缓存架构设计与优化策略
  • MySQL关于锁的面试题
  • 【详细教程】ROC曲线的计算方式与绘制方法详细介绍
  • 基于SeaFormer的YOLOv8性能提升策略—轻量高效注意力模块Sea_AttentionBlock在语义分割中的应用研究
  • 性能比拼: HTTP/2 vs. HTTP/3
  • 网红街区如厕难,如何多管齐下补缺口?
  • 工程院院士葛世荣获聘任为江西理工大学校长
  • 江苏省人社厅党组书记、厅长王斌接受审查调查
  • 比特币价格时隔三个月再度站上10万美元
  • 印度外交秘书:“朱砂行动”不针对军事设施,无意升级事态
  • 梅花奖在上海|第六代“杨子荣”是怎样炼成的?