Springboot集成swagger2生成接口文檔的全過程是怎樣的

本篇文章給大家分享的是有關(guān)Springboot集成swagger2生成接口文檔的全過程是怎樣的,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供賈汪企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為賈汪眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進(jìn)行中。

一、Swagger介紹

Swagger是一個規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化RESTful風(fēng)格的web服務(wù)。目標(biāo)是使客戶端和文件系統(tǒng)作為服務(wù)器以同樣的速度來更新文件的方法,參數(shù)和模型緊密集成到服務(wù)器。這個解釋簡單點來講就是說,swagger是一款可以根據(jù)restful風(fēng)格生成的接口開發(fā)文檔,并且支持做測試的一款中間軟件。

二、使用swagger優(yōu)勢

1、對于后端開發(fā)人員來說

不用再手寫Wiki接口拼大量參數(shù),避免手寫錯誤  對代碼侵入性低,采用全注解的方式,開發(fā)簡單  方法參數(shù)名修改、新增、減少參數(shù)都可以直接生效,不用手動維護(hù)  缺點:增加了開發(fā)成本,寫接口還得再寫一套參數(shù)配置

2、對前端開發(fā)來說

后端只需要定義好接口,會自動生成文檔,接口功能、參數(shù)一目了然  聯(lián)調(diào)方便,如果出了問題,直接測試接口,實時檢查參數(shù)和返回值,就可以快速定位是前端還是后端的問題

3、對于測試來說

但對于測試沒有前端界面UI的功能,可以直接用它來測試接口  操作簡單,不用了解具體代碼就可以操作

三、springboot集成swagger使用

1、新建maven項目(結(jié)構(gòu)如下:)

2、配置pom.xml文件

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>2.1.3.RELEASE</version>    <relativePath/>  </parent>  <groupId>com.dds.sbswagger</groupId>  <artifactId>sb-swagger</artifactId>  <version>0.0.1-SNAPSHOT</version>  <name>sb-swagger</name>  <description>Demo project for Spring Boot</description>  <properties>    <java.version>1.8</java.version>  </properties>  <dependencies>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-test</artifactId>      <scope>test</scope>    </dependency>    <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>    <dependency>      <groupId>org.projectlombok</groupId>      <artifactId>lombok</artifactId>      <version>1.18.6</version>    </dependency>  </dependencies>  <build>    <plugins>      <plugin>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-maven-plugin</artifactId>      </plugin>    </plugins>  </build></project>

3、程序啟動類

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項目集成Swagger實例文檔",        "我的微信公眾號:大道七哥,歡迎大家關(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、實體類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("用戶實體")@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ī)號   */  @ApiModelProperty(value = "用戶手機(jī)號", example = "15689652367", required = true)  private String phone;  /**   * 用戶年齡   */  @ApiModelProperty(value = "用戶年齡", example = "24", required = true)  private Integer age;}

6、接口開發(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ī)號、密碼都是必輸項,年齡隨邊填,但必須是數(shù)字")  @ApiImplicitParams({      @ApiImplicitParam(name = "name", value = "用戶名稱", required = true, paramType = "form"),      @ApiImplicitParam(name = "address", value = "用戶地址", required = true, paramType = "form"),      @ApiImplicitParam(name = "phone", value = "用戶手機(jī)號", required = true, paramType = "form"),      @ApiImplicitParam(name = "age", value = "用戶年齡", required = true, paramType = "form", dataType = "Integer")  })  public boolean addUser(@RequestBody User user) {    return false;  }  @ApiOperation("通過id查找用戶接口")  @GetMapping("/find/{id}")  public User findById(@PathVariable("id") int id) {    return new User();  }  @ApiOperation("更新用戶信息接口")  @PutMapping("/update")  @ApiResponses({      @ApiResponse(code = 400, message = "請求參數(shù)沒填好"),      @ApiResponse(code = 404, message = "請求路徑?jīng)]有或頁面跳轉(zhuǎn)路徑不對"),      @ApiResponse(code = 405, message = "未知錯誤")  })  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生成接口文檔的全過程是怎樣的,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章名稱:Springboot集成swagger2生成接口文檔的全過程是怎樣的
網(wǎng)址分享:http://muchs.cn/article36/jchhsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、網(wǎng)站策劃網(wǎng)站內(nèi)鏈、網(wǎng)站維護(hù)、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化