溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Swagger如何在SpringBoot中使用

發(fā)布時(shí)間:2021-04-09 15:48:43 來源:億速云 閱讀:166 作者:Leah 欄目:編程語言

這篇文章給大家介紹Swagger如何在SpringBoot中使用,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

依賴

<dependency>
 <groupId>io.springfox</groupId>
 <artifactId>springfox-swagger2</artifactId>
 <version>2.7.0</version>
</dependency>
<dependency>
 <groupId>io.springfox</groupId>
 <artifactId>springfox-swagger-ui</artifactId>
 <version>2.7.0</version>
</dependency>

配置類

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
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;

/**
 * Swagger的配置類
 * @author 陳加兵
 *
 */
@Configuration
public class SwaggerConfig{
 /**
 * 創(chuàng)建用戶API文檔
 * @return
 */
 @Bean
 public Docket createRestUserApi(){
 return new Docket(DocumentationType.SWAGGER_2)
 .groupName("user") 
 .apiInfo(apiInfo()) //api的信息
 .select()
 .apis(RequestHandlerSelectors
  .basePackage("cn.tedu.mycat.controller")) //添加包掃描
 .paths(PathSelectors.any()).build();

 }

 /**
 * 創(chuàng)建API信息
 */
 private ApiInfo apiInfo(){
 return new ApiInfoBuilder()
 .title("api文檔的標(biāo)題") //標(biāo)題
 .description("api文檔的描述") //描述
 .contact( //添加開發(fā)者的一些信息
  new Contact("愛撒謊的男孩", "https://chenjiabing666.github.io",
  "18796327106@163.com")).version("1.0").build();
 }

}

啟動(dòng)類

在springBoot的啟動(dòng)類上添加一個(gè)注解即可配置成功: @EnableSwagger2

訪問api的路徑
http://ip/projectName/swagger-ui.html

注解說明

@Api

  • 標(biāo)注在類上,用來對(duì)這個(gè)類進(jìn)行說明的

  • 如果想要生成文檔,必須在類或者接口上標(biāo)注

  • 屬性如下:

屬性名稱備注默認(rèn)值
valueurl的路徑值
tags如果設(shè)置這個(gè)值、value的值會(huì)被覆蓋
description對(duì)api資源的描述
basePath基本路徑可以不配置
position如果配置多個(gè)Api 想改變顯示的順序位置
producesFor example, “application/json, application/xml”
consumesFor example, “application/json, application/xml”
protocolsPossible values: http, https, ws, wss.
authorizations高級(jí)特性認(rèn)證時(shí)配置
hidden配置為true 將在文檔中隱藏

@ApiOperation

  • 用在API方法上,對(duì)該API做注釋,說明API的作用

  • 不需要多講,看源碼,使用默認(rèn)的value屬性即可,說明該方法的作用

  • 屬性如下:

valueurl的路徑值
tags如果設(shè)置這個(gè)值、value的值會(huì)被覆蓋
notes對(duì)api資源的描述
response返回的對(duì)象,在文檔中點(diǎn)擊Model可以獲取該配置的內(nèi)容
responseContainer這些對(duì)象是有效的 “List”, “Set” or “Map”.,其他無效
responseReference可以不配置
httpMethod可以接受 “GET”, “HEAD”, “POST”, “PUT”, “DELETE”, “OPTIONS” and “PATCH”
position如果配置多個(gè)Api 想改變顯示的順序位置
produces同 Api中的定義
consumes同 Api中的定義
protocols同 Api中的定義
authorizations同 Api中的定義
hidden是否隱藏,true 或者false ,這個(gè)可以隱藏后臺(tái)接口
codehttp的狀態(tài)碼 默認(rèn) 200
extensions擴(kuò)展屬性

@ApiImplicitParams

  • 用來包含API的一組參數(shù)注解,可以簡單的理解為參數(shù)注解的集合聲明

  • 很重要,這個(gè)注解其中包含接口入?yún)⒌脑敿?xì)說明

  • 內(nèi)容是集合

@ApiImplicitParam

用在 @ApiImplicitParams 注解中,也可以單獨(dú)使用,說明一個(gè)請(qǐng)求參數(shù)的各個(gè)方面

詳細(xì)的屬性使用說明如下:

  • name :屬性的字段名稱,相當(dāng)于form表單中的name,這個(gè)就是入?yún)⒌淖侄?/p>

  • dataType :參數(shù)的類型,標(biāo)識(shí),字符串

  • value :該參數(shù)的描述

  • required :是否必填,布爾值

  • defaultValue :缺省值,會(huì)在文檔中缺省填入,這樣更方面造數(shù)據(jù),不需要調(diào)用接口的去填值了

  • paramType :指定參數(shù)的入?yún)?shù)方式(也就是請(qǐng)求參數(shù)的位置),其中有四種常用的,如下:

    • query

    • path

    • body

    • form

paramType屬性的詳細(xì)說明

  • query :必須要和入?yún)⒌淖侄我粯?,也可以使?@RequestParam() 指定

  • path :用于Restful的風(fēng)格的url,請(qǐng)求的參數(shù)寫在路徑上,如下:

@ApiOperation(value="根據(jù)用戶Id獲取用戶信息",response=User.class,hidden=false)
 @ApiImplicitParams({
 @ApiImplicitParam(paramType = "path", name = "id", dataType="Integer", required = false, value = "用戶的id", defaultValue = "1")
 })
 @GetMapping("/user/get/{id}")
 public Object getUser(@PathVariable("id")Integer id){
 return new User(id, "陳加兵");
 }
  • body:以流的形式提交 僅支持POST
     form:以表單的形式提交

關(guān)于Swagger如何在SpringBoot中使用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI