SpringBoot使用Swagger2

news/2023/5/28 7:13:26

SpringBoot使用Swagger2

  • 1.引入swagger依赖
  • 2.添加swagger配置类
  • 3.测试Controller
  • 4.测试
  • 5.swagger的注解
    • Api注解
    • ApiOperation注解
    • ApiImplicitParam、ApiImplicitParams注解
    • ApiParam注解
    • ApiResponse、ApiResponses注解
    • ResponseHeader注解
    • ApiModel、ApiModelProperty注解
  • 6.更多

1.引入swagger依赖

        <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配置类

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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration
@EnableSwagger2
public class SwaggerConfig {@Beanpublic Docket createRestApi(){return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()//swagger文档扫描的包,这里扫描的是全部//如果扫描指定包下的可以这样写//.apis(RequestHandlerSelectors.basePackage("com.xxx.yyy.controller")).apis(RequestHandlerSelectors.any()).paths(PathSelectors.any()).build();}private ApiInfo apiInfo(){return new ApiInfoBuilder().title("标题").description("描述").version("版本").termsOfServiceUrl("公司网址").build();}}

3.测试Controller

@RestController
@RequestMapping("/test")
public class TestController {@GetMapping("/test01")public String test01(){return "test01";}@GetMapping("/test02")public String test02(){return "test02";}@GetMapping("/test03")public String test03(){return "test03";}}

4.测试

项目正常启动后浏览器输入网址
http://localhost:8100/swagger-ui.html#/
(这里的端口填写自己服务的端口,我的是8100,默认端口8080)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
测试结果
在这里插入图片描述

5.swagger的注解

上面就是swagger的基本使用
但swagger也提供了一些注解,这里例举一些常用注解

Api注解

       用于标记当前类为Swagger的文档资源。其中含有几个常用属性,分别说明如下。

• value:定义当前接口文档的名称。
• description:用于定义当前接口文档的介绍。

@Api(value = "controller接口",description = "用户测试接口")
public class TestController {

在这里插入图片描述

ApiOperation注解

       @ApiOperation用在接口的方法上,主要用来注解请求接口。其中包含几个常用属性,分别说明如下。

• value:对API的简短描述。
• note:API的有关细节描述。
• hidden:如果值为true,就会在文档中隐藏。

演示

    @GetMapping("/test01")@ApiOperation(value = "测试方法01",notes = "细节的描述,细节的测试",hidden = false)public String test01(){return "test01";}

在这里插入图片描述

ApiImplicitParam、ApiImplicitParams注解

       使用在API请求方法上,@ApiImplicitParams的子集是@ApiImplicitParam注解,其中@ApiImplicitParam注解常用参数。

• name:参数的名称。
• value:参数值。
• required:如果值为true,就是必传字段。
• defaultValue:参数的默认值。
• dataType:数据的类型。

演示

    @GetMapping("/test02")@ApiImplicitParams(value = {@ApiImplicitParam(name = "name",value = "测试姓名",required = false,defaultValue = "默认姓名李四"),@ApiImplicitParam(name = "age",value = "测试年龄",required = false,dataType = "Integer",defaultValue = "200")})public String test02(String name,Integer age){return "test02  姓名:"+name+"  年龄:"+age;}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

ApiParam注解

       ApiParam用于方法的参数,其中包含以下几个常用属性。

• name:参数的名称。
• value:参数值。
• required:如果值为true,就是必传字段。
• defaultValue:参数的默认值。
• type:参数的类型。
• hidden:如果值为true,就隐藏这个参数。

与ApiImplicitParam、ApiImplicitParams注解类似,不再赘述。

ApiResponse、ApiResponses注解

       @ApiResponses和@ApiResponse二者配合使用返回HTTP状态码。@ApiResponses的value值是@ApiResponse的集合,多个@ApiResponse用逗号分隔。其中,@ApiResponse常用参数如下。

• code:HTTP状态码。
• message:HTTP状态信息。
• responseHeaders:HTTP响应头。

演示

@GetMapping("/test03")@ApiResponses(value = {@ApiResponse(code = 200,message = "成功"),@ApiResponse(code = 404,message = "异常")})public String test03(){return "test03";}

在这里插入图片描述

ResponseHeader注解

       如果需要设置响应头,就将@ResponseHeader设置到@ApiResponse的responseHeaders参数中。@ResponseHeader提供了以下几个参数。

• name:响应头名称。
• description:响应头描述。

ApiModel、ApiModelProperty注解

       设置API响应的实体类,用作API返回对象。@ApiModel常用参数。

• value:实体类名称。
• description:实体类描述。

       设置API响应实体的属性,其中常用参数。

• name:属性名称。
• value:属性值。

演示

@ApiModel(value = "Student(学生类)",description = "记录学生个人信息")
public class Student {public String name;@ApiModelProperty(name = "age",value = "年龄")public Integer age;
}

在这里插入图片描述

6.更多

本文总结粗略
更多详细使用参照swagger官网

官方网站:https://swagger.io/

官方文档:https://swagger.io/docs/

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

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

考研英语——长难句语法

长难句语法 一、简单句 1、必须具备主、谓 主语是谓语动作的发出者&#xff0c;宾语是谓语的承受者或接收者 2、结构 主谓宾、主系表 3、系动词 be动词 感官动词&#xff1a;look,smell,taste,sound,feel 变化&#xff1a;become,get,turn,grow,fall 保持&#x…

长难句分析

把多件事给它断成一件事&#xff0c;一件事去看&#xff0c;不就自然能看懂嘛 1、比如说靠标点断开长难句&#xff0c;逗号、分号、冒号&#xff08;前后接的都是句子就可以断开&#xff0c;断开的如果是词就不管它。我们的目标是断开的是句子&#xff0c;断开词的别管&#xf…

gateway整合sentinel限流不生效排查

问题 线上的sentinel 在测试压测时候可以正常被限流 但是在正常的流量中 发现被限流的接口很少 &#xff08;我发誓肯定都配置了限流规则&#xff09; 约定 文中的 服务名称以及地址 都被改写了 排查步骤 1.检查相关配置 以及 pom依赖配置 发现SentinelGatewayFilter 重复…

13.相机和图像——介绍,太阳摄影机,成像系统,图像形成,光圈(Aperture)_1

目录 介绍 太阳摄影机 成像系统 图像形成 光圈&#xff08;Aperture&#xff09; 介绍 因此&#xff0c;3 是我们的新单元&#xff0c;我们将开始谈论相机模型&#xff0c;它将开始温和&#xff0c;然后稍微稍微粗略一点&#xff0c;我们开始进入像透视投影&#xff0c;所…

导出数据时老显示导出失败,显示“保存对象时出错”

之所以显示“保存对象时出错”是因为数据类型导致的&#xff1a; 要素类必须存储在数据库中&#xff0c;若保存类型选择了“要素类”&#xff0c;其保存路径就必须选定一个数据库而非文件夹&#xff0c;文件夹中只能存储shapefile文件&#xff0c;否则保存数据时将会报错。 那…

VS2013 新建工程 出现错误 “未将对象引用设置到对象的实例”

现象 通过visio studio 新建 MVC4 工程在接下的对话框中选择 “基本”模板&#xff0c;视图引擎 选择“Razor”在工程生成的最后&#xff0c;出现错误弹窗&#xff0c;提示“未将对象引用设置到对象的实例”测试 1&#xff0c;在上述工程中添加新的控制器以及对应视图&#xff…

DataTables在IE8下报'style' 为空或不是对象错误问题 , SCRIPT5007: 无法获取未定义或 null 引用的属性“style”

网页错误详细信息&#xff1a; 消息: style 为空或不是对象 行: 5570 字符: 5 代码: 0 检查后才发现&#xff0c;问题在于数组最后多了一个“&#xff0c;”&#xff0c;会造成Table列数计算时多了一列。在chrome和firefox下测试都正常&#xff0c;但在IE8下会出现此问题。 转…

switch case语句里面不能定义对象 错误信息:Cannot jump from switch statement to this case..

case分支下如果过出现两条以上&#xff08;包含两条&#xff09;的语句。就要用大括号{} 括起来 错误如图&#xff1a; 只要在花括号 “{ }”中定义的对象&#xff0c;那么该对象的作用域就局限在这对花括号里面&#xff0c;上面的代码的错误就出现在这儿了。

拒绝的权限----创建中间层对象错误解决方法

错误描述&#xff1a; 服务器可以正常进入金蝶ERP K3系统。 然后安装客户端&#xff0c;安装好后运行远程组件配置&#xff0c;总是提示&#xff1a; 模块:加密服务 组件无法正常工作! 创建中间层对象错误&#xff1a;拒绝的权限 模块:公共组件 组件无法正常工作! 创建中间层对…

JavaScript---错误对象

错误对象是一种特殊的基本对象。它们拥有基本的 Error 类型&#xff0c;同时也有多种具体的错误类型。 标准文档&#xff1a;https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects Error 定义&#xff1a;通过Error的构造器可以创建一个错误对象…

心田花开写人作文指导,小学优秀写人作文推荐

关于写人作文&#xff0c;心田花开总结出几点关于写人作文高分技巧&#xff0c;并为您推荐4篇小学优秀的写人作文供您参考。 一、写人作文技巧口诀 1、关于人物外貌描写&#xff08;样貌、身材、着装等&#xff09; 2、围绕主题选取最能打动读者事例&#xff08;人物语言描写、…

心田花开:家长陪孩子期末复习4点正确方法

利用好最后的复习时间&#xff0c;期末取得出人意料好成绩的同学也有不少。以下4点是心田花开对家长提出的建议&#xff0c;如果你都能做好&#xff0c;一定会对孩子的期末成绩大有帮助。 1、和孩子一起设立考试目标 不少家长一到考试临近&#xff0c;就对孩子施压&#xff0…

6篇关于撒谎600字优秀作文,心田花开整理

关于撒谎“人非圣贤&#xff0c;孰能无过“。谎肯定每个人都说过&#xff0c;心田花开从作文写作方式叙事、写人、想象整理出6篇关于撒谎的600字优秀作文推荐给大家。 第一次撒谎&#xff08;关于撒谎叙事类600字&#xff09; 在我身边发生过数不胜数的事情&#xff0c;随着时…

心田花开:家长,你家孩子与优秀的距离也许只差一样

前两天&#xff0c;一个在心田花开当老师的朋友对我说&#xff1a;“我经历了一个不小的打击。作为一名语文老师&#xff0c;我一直以来都有练字的习惯&#xff0c;前天下午&#xff0c;办公室里练硬笔的时候&#xff0c;被一个五六岁的小朋友嘲讽了&#xff1a;“这么大了&…

心田花开|三年级作文补习|小学三年级作文补习方法与技巧

相对于一二年级来讲&#xff0c;三年级开始写段落性作文&#xff0c;字数相对增加了不少&#xff0c;所以三年级的作文开始变的困难&#xff0c;很多学生会出现没有内容可写的情况&#xff0c;也导致了很多学生出现不喜欢写作文&#xff0c;甚至害怕、抗拒的心理。那么&#xf…

传统文化千千问重磅来袭!边玩边学,答题赢Kindle、全年免单大奖!——心田花开

诸位学习小达人&#xff0c;你们好&#xff01; 心田君有一个好消息&#xff5e; 汇集数千精选题库的 心田花开线上知识型游戏—— 正式上线啦 参与方式&#xff1a;为了方便大家进行每日闯关夺宝&#xff0c;进入【心田花开语文】公众号&#xff0c;点击菜单栏【近期活动】-&g…

【重点】心田花开|人教版小学一年级语文上册汉语拼音

心田花开&#xff1a;小学一年级语文上册汉语拼音人教版,希望对一年级小朋友拼音学习有所帮助~ 内容来源于网络&#xff0c;心田君整理。

心田花开|写作技巧,人物心理描写八大方式

人物描写细分有肖像描写、语言描写、动作描写、心理描写等。心田花开将系统的讲述和分析这几种描写的具体内容与手法。 今天心田花开讲解一下什么是心理描写。 所谓心理描写&#xff0c;就是对人物内心的思想活动、情感活动进行描写。 心理描写能反映人物的思想性格&#xff0c…

【复习资料】心田花开:人教版二年级语文《父亲和鸟》知识点归纳总结

心田花开汇总了二年级语文《父亲和鸟》知识点&#xff0c;文章中包括&#xff1a;原文、词语解释、作者简介、词义辨析及课后练习题&#xff0c;下面就一起来练习吧。 原文&#xff1a; 父亲和鸟 父亲一生最喜欢树林&#xff0c;还有爱唱歌的鸟。 童年的时候&#xff0c;一天清…

心田花开:提升一年级学生学会写作文的5种方法

写作文对于一年级学生而言是一个巨大难题&#xff0c;作文又在语文考试中占了很高的分值。那么如何写出高分作文呢&#xff1f;心田花开为您分享5点作文得高分的方法供您参考。 一、养成孩子多说多写的习惯 写作能力强的孩子&#xff0c;在说话能力方面也是很强的。孩子从识字…