本篇文章給大家分享的是有關(guān)Springboot集成swagger2生成接口文檔的全過(guò)程是怎樣的,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供賈汪企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、H5頁(yè)面制作、小程序制作等業(yè)務(wù)。10年已為賈汪眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
一、Swagger介紹
Swagger是一個(gè)規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化RESTful風(fēng)格的web服務(wù)。目標(biāo)是使客戶端和文件系統(tǒng)作為服務(wù)器以同樣的速度來(lái)更新文件的方法,參數(shù)和模型緊密集成到服務(wù)器。這個(gè)解釋簡(jiǎn)單點(diǎn)來(lái)講就是說(shuō),swagger是一款可以根據(jù)restful風(fēng)格生成的接口開(kāi)發(fā)文檔,并且支持做測(cè)試的一款中間軟件。
二、使用swagger優(yōu)勢(shì)
1、對(duì)于后端開(kāi)發(fā)人員來(lái)說(shuō)
不用再手寫(xiě)Wiki接口拼大量參數(shù),避免手寫(xiě)錯(cuò)誤 對(duì)代碼侵入性低,采用全注解的方式,開(kāi)發(fā)簡(jiǎn)單 方法參數(shù)名修改、新增、減少參數(shù)都可以直接生效,不用手動(dòng)維護(hù) 缺點(diǎn):增加了開(kāi)發(fā)成本,寫(xiě)接口還得再寫(xiě)一套參數(shù)配置
2、對(duì)前端開(kāi)發(fā)來(lái)說(shuō)
后端只需要定義好接口,會(huì)自動(dòng)生成文檔,接口功能、參數(shù)一目了然 聯(lián)調(diào)方便,如果出了問(wèn)題,直接測(cè)試接口,實(shí)時(shí)檢查參數(shù)和返回值,就可以快速定位是前端還是后端的問(wèn)題
3、對(duì)于測(cè)試來(lái)說(shuō)
但對(duì)于測(cè)試沒(méi)有前端界面UI的功能,可以直接用它來(lái)測(cè)試接口 操作簡(jiǎn)單,不用了解具體代碼就可以操作
三、springboot集成swagger使用
1、新建maven項(xiàng)目(結(jié)構(gòu)如下:)
2、配置pom.xml文件
3、程序啟動(dòng)類
package com.dds.sbswagger;import lombok.extern.slf4j.Slf4j;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** * @author dds */@SpringBootApplication@Slf4jpublic class SbSwaggerApplication { public static void main(String[] args) { SpringApplication.run(SbSwaggerApplication.class, args); log.info("\n----------------------------------------------------------\n\t" + "Application demo is running! Access URLs:\n\t" + "swagger-ui: \thttp://127.0.0.1:8080/swagger-ui.html\n\t" + "----------------------------------------------------------"); }}
4、SwaggerConfig配置類
package com.dds.sbswagger.config;import io.swagger.annotations.ApiOperation;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;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;import java.util.Collections;/** * @author DDS * @date 2019/9/10 13:55 */@Configuration@EnableSwagger2public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.dds.sbswagger.controller")) //加了ApiOperation注解的類,才生成接口文檔 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build() .apiInfo(apiInfo()); } private ApiInfo apiInfo() { return new ApiInfo( "Spring Boot項(xiàng)目集成Swagger實(shí)例文檔", "我的微信公眾號(hào):大道七哥,歡迎大家關(guān)注。", "API V1.0", "Terms of service", new Contact("大道七哥", "https://www.cnblogs.com/jstarseven/", "jstarseven@163.com"), "Apache", "http://www.apache.org/", Collections.emptyList()); }}
5、實(shí)體類model
package com.dds.sbswagger.model;import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;/** * @author DDS * @date 2019/9/10 13:55 */@ApiModel("用戶實(shí)體")@Datapublic class User { /** * 用戶Id */ @ApiModelProperty("用戶id") private int id; /** * 用戶名 */ @ApiModelProperty(value = "用戶姓名", example = "zhangdan", required = true) private String name; /** * 用戶地址 */ @ApiModelProperty(value = "用戶地址", example = "北京市海淀區(qū)", required = true) private String address; /** * 用戶手機(jī)號(hào) */ @ApiModelProperty(value = "用戶手機(jī)號(hào)", example = "15689652367", required = true) private String phone; /** * 用戶年齡 */ @ApiModelProperty(value = "用戶年齡", example = "24", required = true) private Integer age;}
6、接口開(kāi)發(fā)
package com.dds.sbswagger.controller;import com.dds.sbswagger.model.User;import io.swagger.annotations.*;import org.springframework.web.bind.annotation.*;/** * @author DDS * @date 2019/9/10 13:55 */@RestController@RequestMapping("/user")@Api(tags = "用戶相關(guān)接口", description = "提供用戶相關(guān)的Rest API")public class UserController { @PostMapping("/add") @ApiOperation(value = "新增用戶接口", notes = "手機(jī)號(hào)、密碼都是必輸項(xiàng),年齡隨邊填,但必須是數(shù)字") @ApiImplicitParams({ @ApiImplicitParam(name = "name", value = "用戶名稱", required = true, paramType = "form"), @ApiImplicitParam(name = "address", value = "用戶地址", required = true, paramType = "form"), @ApiImplicitParam(name = "phone", value = "用戶手機(jī)號(hào)", required = true, paramType = "form"), @ApiImplicitParam(name = "age", value = "用戶年齡", required = true, paramType = "form", dataType = "Integer") }) public boolean addUser(@RequestBody User user) { return false; } @ApiOperation("通過(guò)id查找用戶接口") @GetMapping("/find/{id}") public User findById(@PathVariable("id") int id) { return new User(); } @ApiOperation("更新用戶信息接口") @PutMapping("/update") @ApiResponses({ @ApiResponse(code = 400, message = "請(qǐng)求參數(shù)沒(méi)填好"), @ApiResponse(code = 404, message = "請(qǐng)求路徑?jīng)]有或頁(yè)面跳轉(zhuǎn)路徑不對(duì)"), @ApiResponse(code = 405, message = "未知錯(cuò)誤") }) public boolean update(@RequestBody User user) { return true; } @ApiOperation("刪除用戶接口") @DeleteMapping("/delete/{id}") public boolean delete(@PathVariable("id") int id) { return true; }}
7、swagger界面顯示
以上就是Springboot集成swagger2生成接口文檔的全過(guò)程是怎樣的,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。