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. UDDI FAQs2. python 批量下載bilibili視頻的gui程序3. 詳解CSS偽元素的妙用單標(biāo)簽之美4. python numpy庫(kù)np.percentile用法說(shuō)明5. PHP 面向?qū)ο蟪绦蛟O(shè)計(jì)之類(lèi)屬性與類(lèi)常量實(shí)現(xiàn)方法分析6. HTML <!DOCTYPE> 標(biāo)簽7. CSS自定義滾動(dòng)條樣式案例詳解9. Java Spring WEB應(yīng)用實(shí)例化如何實(shí)現(xiàn)10. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法
