swagger 快速入門

2022-09-11 10:51:15 字數 4225 閱讀 8072

貴在堅持、難在堅持、成在堅持。

故事還是要從前後端分離講起啊

**前後端分離:**vue+springboot 基本上都用這一套

**後端時代:**前端只用管理靜態頁面,html===》後端,使用模版引擎 jsp=》後端主力

前後端分離時代

前後端如何互動 ====》api

前後端相對獨立,松耦合

前後端甚至可以部署在不同的伺服器上

產生乙個問題:

解決問題:

官網:swagger

在專案中使用swagger需要springfox

新建專案:springboot-swagger

匯入相關依賴

新版(3.0)的直接加入啟動器

io.springfox<

/groupid>

springfox-boot-starter<

/artifactid>

3.0.0

<

/version>

<

/dependency>

建立乙個helloword的專案

配置swagger==>就可以啟動看看效果了 3.0版本後不需要在加入@enableopenapi,和@enableswagger2這兩個註解,

package

com.hyc.springbootswagger.config

;import

org.springframework.context.annotation.

configuration

;import

springfox.documentation.swagger2.annotations.

enableswagger2

;@configuration

public

class swaggerconfig

路徑:http://localhost:8080/swagger-ui/index.html

配置呢,swagger有自己的例項

我們使用docket來配置swagger的基本資訊

@bean

public

docket

docket()

// 配置swagger基本資訊

private

apiinfo

apiinfo()

應為沒有set方法所以我們只能用構造器,貌似,還有乙個什麼biuder可以使用,有機會去試試

select()來設定掃瞄

掃瞄介面配置的方法:

apis:

path:過濾**什麼路徑

.

select()

//指定我們需要基於什麼包掃瞄

.apis

(requesthandlerselectors

.basepackage

("com.hyc.springbootswagger.controller"))

.build()

;

使用了自定義,那麼swagger就不會去掃瞄其他的位置,會掃瞄你指定的這個報下的請求

可以發現,現在只有controller下的請求才會被掃瞄

.enable(false)//eanble決定了是否啟動swagger

如果為false那我們就無法進入swagger-ui/index.html了

environment.acceptsprofiles來判斷是否處在環境中

//配置swagger要使用的環境

profiles profiles =

profiles.of

("dev"

,"test"

);

用profiles來配置使用環境

.enable(flag)//eanble判斷是否啟動swagger

分組,如何分組,

.

groupname

("胡宇辰"

)

分組,如何多個分組?,我有多個docket就可以有多個.groupname

@bean

public

docket

docket

(environment environment)

@bean

public

docket

docket1

(environment environment)

@bean

public

docket

docket2

(environment environment)

配置多個組

就是有很多個docket,

效果:

只要我們的介面中,有介面返回的是實體類,那麼就是會被swagger掃瞄

我們寫乙個方法

("/user"

)public

user

user()

返回的是實體類user,user裡有兩個字段,name和age

頁面效果圖:

那我們看到的如@api這些註解是幹什麼的呢?

用來解釋類的用@apimodel

@apimodel

("使用者資訊實體類"

)public

class

user

用來解釋類中的屬性用@apimodelproperty()

@apimodelproperty

("使用者名字"

)public

string name;

@apimodelproperty

("使用者年齡"

)public

int age;

小疑問:我用private修飾的變數這麼寫就不顯示,怎麼辦?

解決方案:寫在get方法上就可以有效果了

測試介面十分好用,

我們可以測試自己的介面是否有效

小測試:

測試介面:

("/userjy"

)public

user

user2

(string name,

int age)

測試頁面步驟圖

檢視提交後的介面資訊

swagger最重大的使命就是使前後端人員之間的和諧關係有所好轉

介面文件可以實時更新

swagger是乙個十分好用的工具,很多公司在使用

ps:處於安全考慮,我們在發布的時候需要關閉swagger

Swagger的入門和常用註解

api value xx tags 2xx value是當前controller的描述,tags也可以作為描述,也可以把controller分為幾組.api tags controller 效果 等同於告訴swagger這個方法的作用描述 效果同上圖的方法描述 name 引數名稱 value 引數描...

yii2 搭建Swagger 快速搭建(一)

一.安裝擴充套件元件zircote swagger php 專案根目錄底下執行 composer require zircote swagger php 在api web下新建資料夾swageer docs 這個資料夾可以自己命名,沒有強制要求,用來放json檔案的 我這個swagger.json檔...

開發技巧 使用Swagger快速生成開發文件

什麼是swagger?swagger是乙個用於快速生成開發文件的工具,它能夠跟著 的變更而同步更新開發文件。為什麼需要swagger?在開發中需求是會經常變化的,需求快速的變更使得我們不得不同步更新相應的各種文件,而這無形之中增加了日常的工作量,而swagger呢能夠自動生成開發文件,並且會自動更新...