最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Swaggo零基礎(chǔ)入門教程

 更新時間:2023年01月28日 08:50:39   作者:知奕奕  
swagger是一套基于OpenAPI規(guī)范構(gòu)建的開源工具,使用RestApi。swagger-ui呈現(xiàn)出來的是一份可交互式的API文檔,可以直接在文檔頁面嘗試API的調(diào)用

配置流程

注意區(qū)分

go-swagger != swaggo

二者功能差不多,都是生成接口文檔用的;

前者構(gòu)建速度極慢且官方文檔極不友好;

后者構(gòu)建速度快且上手簡單,故我們這里采用它;

下載swaggo

項目根目錄下(即與 go.mod 同級的文件夾)命令行執(zhí)行此代碼,下載 swaggo

go get -u github.com/swaggo/swag/cmd/swag

之后就是關(guān)鍵的 swag 環(huán)境變量配置!

  • 進入你之前設(shè)置的 GOPATH 目錄下
  • 進入該文件夾:pkg\mod\github.com\swaggo\swag@v1.8.9\cmd\swag,發(fā)現(xiàn)里面有一個文件 main.go
  • 在當(dāng)前文件夾下打開命令行,輸入 go build 執(zhí)行構(gòu)建過程
  • 構(gòu)建完畢得到 swag.exe ,復(fù)制他
  • 丟到 golang 根目錄下的 bin 文件夾內(nèi)即可(前提是你之前在系統(tǒng)變量 path 里面添加了%GOROOT/bin 這個路徑值,否則你依然需要重新配置一遍系統(tǒng)變量)

更新:對于版本 go1.18+,可以直接使用 go init 代替 go build,這樣做的好處是可以直接省去后面繁瑣的變量配置了

此時在命令行輸入 swag -v 后可以看見版本號則表示環(huán)境變量配置完畢

初始化

進入項目根目錄,保證當(dāng)前目錄下存在至少一個 go 文件(比如主入口文件 main.go

當(dāng)前目錄下打開命令行,輸入 swag init 即可根據(jù) go 文件自動構(gòu)建 swagger 文檔了;

新生成的文檔存放在 docs 文件夾下

快速上手

gin-swagger

官方參考文檔https://github.com/swaggo/gin-swagger

項目根目錄執(zhí)行代碼安裝依賴:

go get -u github.com/swaggo/gin-swagger
go get -u github.com/swaggo/files

簡單測試

在測試前務(wù)必先執(zhí)行 swag init 生成對應(yīng) docs 文件!

import 內(nèi)需要手動導(dǎo)入 docs,其余的兩個包 goland 會自動處理

通過注釋編寫接口信息,然后于 main 方法注冊 swagger-ui 的界面路由就完畢了

package main
import (
    // 這里需要我們手動導(dǎo)入docs,不然報錯
    // 因為該包我們沒有在代碼中實際引用到,故別名需要取名為下劃線
	_ "ginoj/docs"
	"github.com/gin-gonic/gin"
    // 這兩個是固定的,不用修改直接復(fù)制黏貼導(dǎo)包
	swaggerfiles "github.com/swaggo/files"
	ginSwagger "github.com/swaggo/gin-swagger"
	"net/http"
)
// @Summary ping example
// @Schemes
// @Description do ping
// @Tags example
// @Accept json
// @Produce json
// @Success 200 {string} Helloworld
// @Router /example/helloworld [get]
func Helloworld(g *gin.Context) {
	g.JSON(http.StatusOK, "helloworld")
}
func main() {
	router := gin.Default()
    // 注冊swagger-ui界面路由
	router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler))
	router.Run(":10001")
}

此時進入localhost:8080/swagger/index.html 就可以看見接口文檔了(注意這里的端口修改為你使用的那一個!)

詳細配置

通過上述操作我們發(fā)現(xiàn)依然會提示缺失了 spec 文件,這是我們沒有執(zhí)行 init 的緣故;

注意,每次修改一次文檔都必須執(zhí)行 swag init 一次,并且重啟服務(wù)器才可以正常渲染;

我們把 main.go 改造為這個樣子,為 main 添加了一些全局注釋

package main
import (
	_ "ginoj/docs"
	"github.com/gin-gonic/gin"
	swaggerfiles "github.com/swaggo/files"
	ginSwagger "github.com/swaggo/gin-swagger"
	"net/http"
)
// Helloworld
// @Description a simple example
// @Tags example
// @Accept json
// @Produce json
// @Param id path int true "shit"
// @Success 200 {string} json "{"status":"success"}"
// @Router /helloworld [get]
func Helloworld(g *gin.Context) {
	g.JSON(http.StatusOK, "helloworld")
}
// @title           Swagger Example API
// @version         1.0
// @description     This is a sample server celler server.
// @termsOfService  http://swagger.io/terms/
// @contact.name   API Support
// @contact.url    http://www.swagger.io/support
// @contact.email  support@swagger.io
// @license.name  MIT
// @license.url   http://www.apache.org/licenses/LICENSE-2.0.html
// @host      localhost:10001
func main() {
	router := gin.Default()
	router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler))
	router.Run(":10001")
}

回到根目錄下執(zhí)行 swag init,之后重啟服務(wù)器即可看到文檔了

到此這篇關(guān)于Swaggo零基礎(chǔ)入門教程的文章就介紹到這了,更多相關(guān)Swaggo入門內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語言特點及基本數(shù)據(jù)類型使用詳解

    Go語言特點及基本數(shù)據(jù)類型使用詳解

    這篇文章主要為大家介紹了Go語言特點及基本數(shù)據(jù)類型使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • Go語言測試庫testify使用學(xué)習(xí)

    Go語言測試庫testify使用學(xué)習(xí)

    這篇文章主要為大家介紹了Go語言測試庫testify的使用學(xué)習(xí)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • vscode搭建go開發(fā)環(huán)境案例詳解

    vscode搭建go開發(fā)環(huán)境案例詳解

    對于Visual Studio Code開發(fā)工具,有一款優(yōu)秀的GoLang插件,今天通過本文給大家介紹下vscode搭建go開發(fā)環(huán)境的詳細教程,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • Go語言排序算法:快速、可靠的排序解決方案

    Go語言排序算法:快速、可靠的排序解決方案

    Go語言提供了多種快速、可靠的排序算法,可以滿足不同場景下的排序需求,其中最常用的排序算法包括快速排序、歸并排序和堆排序,需要的朋友可以參考下
    2023-10-10
  • Go讀寫鎖操作方法示例詳解

    Go讀寫鎖操作方法示例詳解

    這篇文章主要為大家介紹了Go讀寫鎖方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Go模塊布局管理文檔翻譯理解

    Go模塊布局管理文檔翻譯理解

    這篇文章主要為大家介紹了Go模塊布局管理文檔翻譯理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Go語言錯誤處理異常捕獲+異常拋出

    Go語言錯誤處理異常捕獲+異常拋出

    這篇文章主要介紹了Go語言錯誤處理異常捕獲和異常拋出,Go語言的作者認為java等語言的錯誤處理底層實現(xiàn)較為復(fù)雜,就實現(xiàn)了函數(shù)可以返回錯誤類型以及簡單的異常捕獲,雖然簡單但是也非常精妙,大大的提高了運行效率,下文需要的朋友可以參考一下
    2022-02-02
  • go數(shù)據(jù)結(jié)構(gòu)和算法BitMap原理及實現(xiàn)示例

    go數(shù)據(jù)結(jié)構(gòu)和算法BitMap原理及實現(xiàn)示例

    這篇文章主要為大家介紹了go數(shù)據(jù)結(jié)構(gòu)和算法BitMap原理及實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • golang如何使用指針靈活操作內(nèi)存及unsafe包原理解析

    golang如何使用指針靈活操作內(nèi)存及unsafe包原理解析

    本文將深入探討unsafe包的功能和原理,同時,我們學(xué)習(xí)某種東西,一方面是為了實踐運用,另一方面則是出于功利性面試的目的,所以,本文還會為大家介紹unsafe?包的典型應(yīng)用以及高頻面試題,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • go語言制作的zip壓縮程序

    go語言制作的zip壓縮程序

    這篇文章主要介紹了go語言制作的zip壓縮程序,其主體思路是首先創(chuàng)建一個讀寫緩沖,然后用壓縮器包裝該緩沖,用Walk方法來將所有目錄下的文件寫入zip,有需要的小伙伴參考下。
    2015-03-03

最新評論

泸溪县| 大连市| 防城港市| 井陉县| 金阳县| 溧阳市| 奎屯市| 永安市| 宁国市| 嵊泗县| 远安县| 河间市| 九寨沟县| 巴塘县| 霸州市| 江门市| 新巴尔虎右旗| 曲沃县| 石楼县| 中超| 东乡族自治县| 莎车县| 高尔夫| 永康市| 寿光市| 来宾市| 志丹县| 察雅县| 长春市| 永新县| 宿松县| 汉寿县| 阜宁县| 正阳县| 金溪县| 富锦市| 乐平市| 岳阳县| 高邑县| 扶绥县| 广西|