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

Swagger笔记

一、导包

<!--引入swagger-->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version>
</dependency>
<!--前端的UI界面-->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version>
</dependency>

二、编写配置类

import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI;
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
@EnableSwaggerBootstrapUI
public class SwaggerConfig {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.example.swaggerdemo")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder()// 标题.title("Spring Boot中使用Swagger2构建RESTful APIs 的标题")// Swagger文档的版本号.version("1.0")// 标题的详细描述.description("Spring Boot中使用Swagger2构建RESTful APIs 的详细描述")// 友链,用的少.termsOfServiceUrl("http://www.baidu.com")// 联系人信息.contact(new Contact("蒋劲豪","http://www.hao123.com","718009739@qq.com"))// 协议,自定义的.license("Apache 2.0")// 把协议变成超链接.licenseUrl("http://www.bilibili.com").build();}
}

三、接口文档的访问地址

http://localhost:8080/swagger-ui.html

四、常见问题

SpringBoot和Swagger有版本不兼容问题,如果版本不兼容会出现以下异常:

org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 

解决办法:

(一)换兼容的版本

(二)改配置文件

spring:mvc:pathmatch:matching-strategy: ant_path_matcher

五、Controller类的案例

import com.example.swaggerdemo.entity.User;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/userController")
@Api(tags = {"用户接口"})
public class UserController {@ApiOperation(value = "新增用户接口", notes = "新增用户接口的详细描述")// 对请求参数进行说明@ApiImplicitParams({@ApiImplicitParam(name = "id", value = "用户编号", dataType = "string",paramType = "query", required = true, defaultValue = "1001"),// 如果参数在请求头中 paramType = "header"// 如果参数在路径中 paramType = "path"// 如果参数在请求体中 paramType = "query"@ApiImplicitParam(name = "name", value = "用户姓名", dataType = "string",paramType = "query", required = true, defaultValue = "tom")})// 对响应结果进行说明@ApiResponses({@ApiResponse(code = 200, message = "success", response = User.class)})@PostMapping("/addUser")public String addUser(User user) {return "新增用户成功!";}
}

六、实体类的案例

package com.example.swaggerdemo.entity;import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "User", description = "用户的实体类")
public class User {@ApiModelProperty(value = "用户编号")private String id;@ApiModelProperty(value = "用户姓名")private String name;
}

七、换其他的前端UI

如果不喜欢默认的UI界面,可以换一个前端UI界面;

(一)导包

<!--新UI-->
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.9.6</version>
</dependency>

(二)添加注解

在SwaggerConfig配置类上加上注解

@EnableSwaggerBootstrapUI

(三)接口文档的访问地址

http://localhost:8080/doc.html

相关文章:

Swagger笔记

一、导包 <!--引入swagger--> <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version> </dependency> <!--前端的UI界面--> <dependency><…...

数据结构 堆

手写堆&#xff0c;而非stl中的堆 如何手写一个堆&#xff1f; //将数组建成堆 <O(n) for (int i n / 2;i;i--) //从n/2开始down down(i); 从n/2元素开始down&#xff0c;最下面一层元素的个数是n/2&#xff0c;其余上面的元素的个数是n/2&#xff0c;从最下面一层到最高层…...

将 ONLYOFFICE 文档编辑器与 Node.js 应用集成

我们来了解下&#xff0c;如何将 ONLYOFFICE 文档编辑器与您的 Web 应用集成。 许多 Web 应用都可以从文档编辑功能中获益。但是要从头开始创建这个功能&#xff0c;需要花费大量时间和精力。幸运的是&#xff0c;您可以使用 ONLYOFFICE——这是一款开源办公套件&#xff0c;可…...

CentOS 7搭建Gitlab流程

目录 1、查询docker镜像gitlab-ce 2、拉取镜像 3、查询已下载的镜像 4、新建gitlab文件夹 5、在gitlab文件夹下新建相关文件夹 6、创建运行gitlab的容器 7、查看docker容器 8、根据Linux地址访问gitlab 9、进入docker容器&#xff0c;设置用户名的和密码 10、登录git…...

Idea安装完成配置

目录&#xff1a; 环境配置Java配置Maven配置Git配置 基础设置编码级设置File Header自动生成序列化编号配置 插件安装MyBtisPlusRestfulTooklkit-fix 环境配置 Java配置 Idea右上方&#xff0c;找到Project Settings. 有些版本直接有&#xff0c;有些是在设置下的二级菜单下…...

超详细~25考研规划~感恩现在努力的你!!!

25考研规划 俄语&#xff0c;翻译过来叫我爱你 考试时间 第一天 8.30-11.30政治——100分 2.00-5.00英语——100分 第二天 8.30-11.30数学——150分 2.00-5.00专业课——150分 1.什么是25考研 将在2024年12月参加考研&#xff0c;2025年本科毕业&#xff0c;9月读研究…...

智慧城市安全监控的新利器

在传统的城市管理中&#xff0c;井盖的监控一直是一个难题&#xff0c;而井盖异动传感器的出现为这一问题提供了有效的解决方案。它具有体积小、重量轻、安装方便等特点&#xff0c;可以灵活地应用于各种类型的井盖&#xff0c;实现对城市基础设施的全方位监控。 智能井盖监测终…...

【算法】石子合并(区间dp)

题目 设有 N 堆石子排成一排&#xff0c;其编号为 1,2,3,…,N。 每堆石子有一定的质量&#xff0c;可以用一个整数来描述&#xff0c;现在要将这 N 堆石子合并成为一堆。 每次只能合并相邻的两堆&#xff0c;合并的代价为这两堆石子的质量之和&#xff0c;合并后与这两堆石子…...

C++-特殊类和单例模式

1.请设计一个类&#xff0c;不能被拷贝 拷贝构造函数以及赋值运算符重载&#xff0c;因此想要让一个类禁止拷贝&#xff0c;只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。 //该类不能发生拷贝class NonCopy{public:NonCopy(const NonCopy& Nc) delete;NonCopy&…...

【开源】基于Vue.js的智能教学资源库系统

项目编号&#xff1a; S 050 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S050&#xff0c;文末获取源码。} 项目编号&#xff1a;S050&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课…...

C语言之qsort()函数的模拟实现

C语言之qsort()函数的模拟实现 文章目录 C语言之qsort()函数的模拟实现1. 简介2. 冒泡排序3. 对冒泡排序进行改造4. 改造部分4.1 保留部分的冒泡排序4.2 比较部分4.3 交换部分 5. bubble_sort2完整代码6. 使用bubble_sort2来排序整型数组7. 使用bubble_sort2来排序结构体数组7.…...

数字化未来:实时云渲染在智慧城市中的创新应用

数字中国战略"是国家推动数字经济发展的战略框架。这个战略旨在加速数字化转型&#xff0c;推动信息技术在各个领域的应用&#xff0c;提高社会经济效益和人民生活质量。而智慧城市作为其中的重要一环&#xff0c;重要性不言而喻。 智慧城市是当今城市发展的热点和趋势&a…...

Go语言常用命令详解(二)

文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

ChatGPT 从零到一打造私人智能英语学习助手

近几年&#xff0c;随着智能化技术的发展和人工智能的兴起&#xff0c;越来越多的应用程序开始涌现出来。在这些应用中&#xff0c;语音识别、自然语言处理以及机器翻译等技术都得到了广泛的应用。其中&#xff0c;聊天机器人成为了最受欢迎的人工智能应用之一&#xff0c;它们…...

算法升级之路(七)-盛最多水的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 原题链接: 盛最多水的容器 解题思路&…...

milvus数据库索引管理

一、建立向量索引 默认情况下&#xff0c;Milvus不会对小于1,024行的段进行索引。 1.准备索引参数 index_params {"metric_type":"L2","index_type":"IVF_FLAT","params":{"nlist":1024} } #"nlist"…...

JVM中的 -Xms参数 设置 JVM 的初始堆大小

在 Java 虚拟机&#xff08;JVM&#xff09;的配置中&#xff0c;-Xms 是一个启动参数&#xff0c;用于设置 JVM 的初始堆大小&#xff08;Initial Heap Size&#xff09;。这个参数对于优化 Java 应用程序的性能非常重要&#xff0c;特别是在处理需要大量内存的应用程序时。 …...

Idea 创建 Spring 项目(保姆级)

描述信息 最近卷起来&#xff0c;系统学习Spring&#xff1b;俗话说&#xff1a;万事开头难&#xff1b;创建一个Spring项目在网上找了好久没有找到好的方式&#xff1b;摸索了半天产出如下文档。 在 Idea 中新建项目 填写信息如下 生成项目目录结构 pom添加依赖 <depende…...

C++多线程学习(一):C++11 多线程快速入门

参考引用 C11 14 17 20 多线程从原理到线程池实战代码运行环境&#xff1a;Visual Studio 2019 1. 为什么要用多线程 任务分解 耗时的操作&#xff0c;任务分解&#xff0c;实时响应 数据分解 充分利用多核CPU处理数据 数据流分解 读写分离&#xff0c;解耦合设计 2. 第一个…...

Linux系统之lsof命令的基本使用

Linux系统之lsof命令的基本使用 一、lsof命令的基本使用二、lsof命令的使用帮助2.1 lsof命令的help帮助信息2.2 lsof命令帮助解释 三、lsof的基本使用3.1 直接使用lsof命令3.2 查看某个进程打开的所有文件3.3 查看某个用户打开的所有文件3.4 查看某个文件被哪些进程打开3.5 查看…...

实战应用:在快马平台构建带缺陷的微项目,演练测试面试实战题

今天想和大家分享一个特别实用的软件测试学习方法——通过构建带缺陷的微项目来演练测试面试题。这个方法不仅帮助我顺利通过了最近的面试&#xff0c;还让我对测试工作有了更深入的理解。 为什么选择在线书店作为测试项目&#xff1f; 在线书店系统包含了软件测试中最常见的…...

ai协作新范式:用快马平台ccswitch模型智能生成天气预报组件代码

今天想和大家分享一个有趣的AI辅助开发实践——用InsCode(快马)平台的ccswitch模型智能生成天气预报组件。整个过程就像有个懂编程的助手在实时配合&#xff0c;特别适合想快速实现功能又希望保持代码质量的场景。 理解ccswitch模型的调节作用 这个模型最实用的地方在于它能智能…...

DeerFlow部署全攻略:简单几步,打造你的专属AI研究工作站

DeerFlow部署全攻略&#xff1a;简单几步&#xff0c;打造你的专属AI研究工作站 1. 引言&#xff1a;你的个人深度研究助理来了 想象一下&#xff0c;你正在为一个复杂的项目做调研&#xff0c;需要收集资料、分析数据、撰写报告&#xff0c;甚至还要制作演示文稿。传统的方式…...

AI赋能tokenp:借助快马多模型能力生成具备智能风控与建议的钱包原型

最近在尝试用AI辅助开发一个智能化的tokenp钱包原型&#xff0c;发现InsCode(快马)平台的多模型AI能力特别适合快速实现这类需求。今天就来分享下如何用React构建一个带AI风控和建议功能的增强型钱包界面。 项目整体构思 传统钱包应用主要关注资产存储和转账&#xff0c;而结合…...

Unitree Go2机器人ROS2集成完整指南:从零开始掌握智能四足机器人开发

Unitree Go2机器人ROS2集成完整指南&#xff1a;从零开始掌握智能四足机器人开发 【免费下载链接】go2_ros2_sdk Unofficial ROS2 SDK support for Unitree GO2 AIR/PRO/EDU 项目地址: https://gitcode.com/gh_mirrors/go/go2_ros2_sdk 想要让Unitree Go2机器人真正&quo…...

Win11Debloat完整指南:如何一键清理Windows系统,提升51%性能的免费神器

Win11Debloat完整指南&#xff1a;如何一键清理Windows系统&#xff0c;提升51%性能的免费神器 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other …...

保姆级教程:在Ubuntu 20.04上搞定Isaac Gym Preview 4和强化学习环境(含常见libpython报错解决)

保姆级教程&#xff1a;在Ubuntu 20.04上搞定Isaac Gym Preview 4和强化学习环境&#xff08;含常见libpython报错解决&#xff09; 刚接触Isaac Gym的机器人/强化学习新手&#xff0c;往往会在环境配置阶段遇到各种依赖问题。本文将提供一个从零开始的详细安装指南&#xff0c…...

ai赋能开发:在快马平台用自然语言描述,自动生成java swing计算器代码

最近想用Java Swing开发一个图形化计算器&#xff0c;但作为初学者对Swing库不太熟悉。好在发现了InsCode(快马)平台&#xff0c;它内置的AI辅助开发功能帮我轻松解决了这个问题。整个过程就像有个编程助手在实时指导&#xff0c;特别适合我这种想快速实现功能但又不想深陷语法…...

OpenClaw技能扩展指南:为Phi-3-mini-128k-instruct添加Markdown转换能力

OpenClaw技能扩展指南&#xff1a;为Phi-3-mini-128k-instruct添加Markdown转换能力 1. 为什么需要文档处理技能&#xff1f; 上周我整理技术文档时遇到了一个典型问题&#xff1a;收到同事发来的PDF技术白皮书&#xff0c;需要提取关键章节并转换为Markdown格式存档。手动操…...

Gitee:中国DevOps生态的数字化转型引擎

本土化创新重塑开发者体验在中国数字经济蓬勃发展的背景下&#xff0c;Gitee作为国产代码托管平台的代表&#xff0c;正在重新定义中国开发者的工作方式。不同于国际平台在中国市场的适应性局限&#xff0c;Gitee通过深度理解本土开发者的工作习惯和业务场景&#xff0c;构建了…...