问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SpringBoot整合Swagger接口文档

发布网友 发布时间:2024-09-26 06:32

我来回答

1个回答

热心网友 时间:2024-10-10 12:10

1、整合Swagger3接口文档

前后端分离的项目,接口文档的存在十分重要。与手动编写接口文档不同,swagger是一个自动生成接口文档的工具,在需求不断变更的环境下,手动编写文档的效率实在太低。与新版的swagger3相比swagger2配置更少,使用更加方便。

步骤一:引入Swagger3依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency>步骤二:Application启动类上面加入@EnableOpenApi注解@EnableOpenApi@SpringBootApplication@MapperScan(basePackages={"com.singerw."})publicclassSingerwblogApplication{publicstaticvoidmain(String[]args){SpringApplication.run(SingerwblogApplication.class,args);}}步骤三:配置Swagger3Config.java@ConfigurationpublicclassSwagger3Config{@BeanpublicDocketcreateRestApi(){returnnewDocket(DocumentationType.OAS_30).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.etc.swagger.controller")).paths(PathSelectors.any()).build();}privateApiInfoapiInfo(){returnnewApiInfoBuilder().title("Swagger3接口文档").description("个人博客项目文档。").contact(newContact("ZhangSingerw。","http://www.singerw.com","zhangsingerw@gmail.com")).version("1.0").build();}}步骤四:访问

Swagger的访问路径由http://127.0.0.1:8080/swagger-ui.html改成了http://127.0.0.1:8080/swagger-ui/或http://127.0.0.1:8080/swagger-ui/index.html

Swagger3自定义Ui

Swagger有很多可以自定义的ui,这里只举例以下两种:

<dependency><groupId>com.zyplayer</groupId><artifactId>swagger-mg-ui</artifactId><version>1.0.6</version></dependency>

导入包后访问:http://localhost:8080/document.html

<!--老版本引用--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.9.6</version></dependency><!--新版本引用--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-ui</artifactId><version>3.0.3</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>${knife4j.version}</version></dependency>

导入包后访问:http://localhost:8080/doc.html

2、整合Swagger2接口文档步骤一:导入依赖<!--swagger2start--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.1</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency><dependency><groupId>org.webjars</groupId><artifactId>bootstrap</artifactId><version>3.3.5</version></dependency><!--swagger2end-->

步骤二:新建Swagger2Config配置类

@Configuration@EnableSwagger2publicclassSwagger2Config{//swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等@Bean创建一个beanpublicDocketcreateRestApi(){returnnewDocket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()//为当前包路径.apis(RequestHandlerSelectors.basePackage("com.singerw.controller")).paths(PathSelectors.any()).build();}//构建api文档的详细信息函数,注意这里的注解引用的是哪个privateApiInfoapiInfo(){returnnewApiInfoBuilder()//页面标题.title("SpringBoot测试使用Swagger2构建RESTfulAPI")//创建人.contact(newContact("小白","http://singerw.com",""))//版本号.version("1.0")//描述.description("API描述").build();}}步骤三:访问

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

3、Swagger常用注解的使用说明@Api:用在请求的类上,表示对类的说明tags="说明该类的作用,可以在UI界面上看到的注解"value="该参数没什么意义,在UI界面上也看到,所以不需要配置"@ApiOperation:用在请求的方法上,说明方法的用途、作用value="说明方法的用途、作用"notes="方法的备注说明"@ApiImplicitParams:用在请求的方法上,表示一组参数说明@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面name:参数名value:参数的汉字说明、解释required:参数是否必须传paramType:参数放在哪个地方·header-->请求参数的获取:@RequestHeader·query-->请求参数的获取:@RequestParam·path(用于restful接口)-->请求参数的获取:@PathVariable·body(不常用)·form(不常用)dataType:参数类型,默认String,其它值dataType="Integer"defaultValue:参数的默认值@ApiResponses:用在请求的方法上,表示一组响应@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息code:数字,例如400message:信息,例如"请求参数没填好"response:抛出异常的类@ApiModel:用于响应类上,表示一个返回响应数据的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)@ApiModelProperty:用在属性上,描述响应类的属性4、Controller层的配置示例@Api(tags="用户信息管理")@RestController@RequestMapping("userRecord")publicclassUserRecordControllerextendsApiController{/***服务对象*/@ResourceprivateUserRecordServiceuserRecordService;/***分页查询所有数据*@parampage分页对象*@paramuserRecord查询实体*@return所有数据*/@ApiOperation("分页查询所有数据")@GetMapping("page")publicRselectAll(Page<UserRecord>page,UserRecorserRecord){returnsuccess(this.userRecordService.page(page,newQueryWrapper<>(userRecord)));}/***通过主键查询单条数据*@paramid主键*@return单条数据*/@ApiOperation("通过主键查询单条数据")@GetMapping("{id}")publicRselectOne(@PathVariableSerializableid){returnsuccess(this.userRecordService.getById(id));}/***新增数据*@paramuserRecord实体对象*@return新增结果*/@ApiOperation("新增数据")@PostMapping("insert")publicRinsert(@RequestBodyUserRecorserRecord){returnsuccess(this.userRecordService.save(userRecord));}/***修改数据*@paramuserRecord实体对象*@return修改结果*/@ApiOperation("修改数据")@PutMapping("update")publicRupdate(@RequestBodyUserRecorserRecord){returnsuccess(this.userRecordService.updateById(userRecord));}/***删除数据*@paramidList主键结合*@return删除结果*/@ApiOperation("删除数据")@DeleteMapping("delete")publicRdelete(@RequestParam("idList")List<Long>idList){returnsuccess(this.userRecordService.removeByIds(idList));}}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...会花滑男单陈巍夺金,羽生结弦挑战 4A 失败获第 4,金博洋第 9,如何... ...充值100块,用花呗买的,到帐200块话费,我要怎么处理,可以叫他扣回... ...充了100电信卡话费,现在蚂蚁花呗叫我10月10日还款。这个我就看不... 我的手机掉了,新手机的蚂蚁花呗登不上,里面有264元没还,我要咋样还款... 我用了蚂蚁花呗充了100话费,但是我的手机和银行卡都掉了,现在我要怎么... 游泳池余氯过高怎么处理 太平洋人寿保险对比中国人寿保险,哪个实力强一点? 中国太平洋人寿保险股份有限公司上市情况 听说好多人在泳池里排尿——游泳池尿素怎样检测呢 如何提高游泳池中水的氯的含量 Springboot2.x整合Swagger3.0配置与问题解决 Springboot学习(六)swagger使用说明 Springboot入门之整合swagger2 springboot swagger 出来两个相同的参数,麻烦大神解答附上代码和... 夫妻共同按揭买房后离婚的时候该如何分 离婚了按揭办房产证怎么办? 如何注销微信号或者解除绑定手机号 历史姓李的名人除了李白李世民之外还有没有了? 倒追喜欢的男生的办法,类似欲擒故纵的办法 周钟:翰林院官员,投降李自成苟且偷生 长了喉结就不会继续发育,长高了吗? 长了一点喉结后,还能长高吗? 请问长出喉结后,还会长个子吗? 急死了我现在16了 身高才155 急啊... 我17岁了喉结也长了还可以长高吗 派出所拘留24小时了还没出来怎么办? 新兴的自媒体平台有哪些 ?政策法规:多家餐馆卖拍黄瓜遭职业打假 拍黄瓜为何引来职业打假? 冷食卫生许可证 吉他音阶是什么,是不是就是练爬格子练习,我现在会了第1指开始的6种... 1972年12月31号天亮的时辰是几点 Spring boot集成Swagger,并配置多个扫描路径 欧美的同性恋真的有电视剧里那么多么? 欧美的男生或者女生对中国异性的标准是什么样子的? 我喜欢一个欧洲的男生,我是现在virgin, 如果我和他do sex , 第一次会... 谁有高中的考纲要背诵的古诗和文言文?题目也可以,要是有文章的更好了... 适合中学生背的古诗词,类似爱莲说的也可以 人体需要的六大类营养物质,分别是 ___ 、___、___、维生素、水和无机盐... 步步高i531怎么下歌词同步显示软件啊 就是我下的歌没有歌词 然后用那个... 步步高I531的手机怎么在手机上同步下载歌曲和歌词下载,怎么下载? 下载到手机的歌词怎么显示 步步高i531 手机怎么显示歌词.我是步步高I531 步步高i531怎样让歌词同步 步步高i531歌词模式如何显示 我的手机型号是步步高i531,怎么把歌词弄到音乐播放器的歌词模式里和歌一... 步步高i531的歌词格式是什么?为什么我用lrc的格式显示不出来啊_百度... 如何把小米手机的照片传到电脑里?? 如何将小米手机中的照片传到电脑中 广东炖瘦肉水的做法 炖瘦肉水的做法 谁来告诉我怎么倒追一个男生又不要明说让人觉得你喜欢他、但又能引 ...