SpringBoot整合Swagger框架過(guò)程解析
Swagger 是一個(gè)規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)。
總體目標(biāo)是使客戶(hù)端和文件系統(tǒng)作為服務(wù)器以同樣的速度來(lái)更新。文件的方法、參數(shù)和模型緊密集成到服務(wù)器端的代碼,允許 API 來(lái)始終保持同步。Swagger 讓部署管理和使用功能強(qiáng)大的 API 從未如此簡(jiǎn)單。
引入maven依賴(lài)
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> <scope>provided</scope> </dependency>
創(chuàng)建配置類(lèi)
package com.example.demo.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.env.Environment;import org.springframework.core.env.Profiles;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;import java.util.ArrayList;/** * @author yvioo。 */@Configuration@EnableSwagger2 //開(kāi)啟Swagger2public class SwaggerConfig { /** * 配置Swagger的Docket的bean實(shí)例 * @return */ @Bean public Docket docket(Environment environment) { //設(shè)置只在開(kāi)發(fā)中環(huán)境中啟動(dòng)swagger Profiles profiles=Profiles.of('dev'); //表示如果現(xiàn)在是dev環(huán)境,則返回true 開(kāi)啟swagger boolean flag=environment.acceptsProfiles(profiles); return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())//是否啟動(dòng)swagger 默認(rèn)啟動(dòng).enable(flag)//所在分組.groupName('yvioo').select()//指定掃描的包路徑.apis(RequestHandlerSelectors.basePackage('com.example.demo.controller'))//指定掃描的請(qǐng)求,這里表示掃描 /hello/ 的請(qǐng)求//.paths(PathSelectors.ant('/hello/**')).build(); } /** * 配置ApiInfo信息 * @return */ private ApiInfo apiInfo() { //作者信息 Contact author = new Contact('yvioo', 'https://www.cnblogs.com/pxblog/', '[email protected]'); return new ApiInfo('Swagger測(cè)試','Swagger描述','1.0','urn:tos',author,'Apache 2.0','http://www.apache.org/licenses/LICENSE-2.0',new ArrayList() ); }}
測(cè)試用戶(hù)實(shí)體類(lèi)
User.java
package com.example.demo.entity;import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;@ApiModel('用戶(hù)實(shí)體類(lèi) User') //增加實(shí)體類(lèi)接口注釋@Data //使用Lombok插件自動(dòng)生成get set方法,這樣才能在swagger中顯示屬性值public class User { @ApiModelProperty('用戶(hù)ID') //增加字段接口注釋 private Integer id; @ApiModelProperty('用戶(hù)名') private String username;}
測(cè)試控制器
SwaggerController.java
package com.example.demo.controller;import com.example.demo.entity.User;import io.swagger.annotations.ApiOperation;import io.swagger.annotations.ApiParam;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class SwaggerController { @GetMapping('/hello') public String hello(){ return 'hello'; } /** * 接口返回值含有實(shí)體類(lèi),就會(huì)被swagger掃描 * * @return */ @ApiOperation('查詢(xún)用戶(hù)方法注釋') @GetMapping(value = '/get/{id}') public User get(@ApiParam('請(qǐng)求參數(shù)注釋') @PathVariable(value = 'id')Integer id){ return new User(); }}
使用dev環(huán)境 啟動(dòng)項(xiàng)目后 瀏覽器打開(kāi)http://localhost:8081/swagger-ui.html#/ 我這里用的端口是8081
顯示效果
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. idea設(shè)置提示不區(qū)分大小寫(xiě)的方法2. HTTP協(xié)議常用的請(qǐng)求頭和響應(yīng)頭響應(yīng)詳解說(shuō)明(學(xué)習(xí))3. .NET SkiaSharp 生成二維碼驗(yàn)證碼及指定區(qū)域截取方法實(shí)現(xiàn)4. 原生JS實(shí)現(xiàn)記憶翻牌游戲5. django創(chuàng)建css文件夾的具體方法6. css代碼優(yōu)化的12個(gè)技巧7. CentOS郵件服務(wù)器搭建系列—— POP / IMAP 服務(wù)器的構(gòu)建( Dovecot )8. Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié)9. IntelliJ IDEA創(chuàng)建web項(xiàng)目的方法10. ASP.NET MVC通過(guò)勾選checkbox更改select的內(nèi)容
