欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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
  • 在當前文件夾下打開命令行,輸入 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)境變量配置完畢

初始化

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

當前目錄下打開命令行,輸入 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語言使用RC4加密的方法

    go語言使用RC4加密的方法

    這篇文章主要介紹了go語言使用RC4加密的方法,實例分析了RC4加密的技巧與實現(xiàn)方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • go語言計算兩個時間的時間差方法

    go語言計算兩個時間的時間差方法

    這篇文章主要介紹了go語言計算兩個時間的時間差方法,涉及Python操作時間的技巧,需要的朋友可以參考下
    2015-03-03
  • 詳解golang?defer?閉包?匿名函數(shù)

    詳解golang?defer?閉包?匿名函數(shù)

    這篇文章主要介紹了golang?defer?閉包?匿名函數(shù)的相關(guān)知識,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Go語言Handler詳細說明

    Go語言Handler詳細說明

    這篇文章主要介紹了Go語言Handler詳細說明,Handler用于處理請求并給予響應(yīng)。更嚴格地說,用來讀取請求體、并將請求對應(yīng)的響應(yīng)字段(respones header)寫入ResponseWriter中,需要的朋友可以參考下
    2022-04-04
  • 用Go獲取短信驗證碼的示例代碼

    用Go獲取短信驗證碼的示例代碼

    要用Go獲取短信驗證碼,通常需要連接到一個短信服務(wù)提供商的API,并通過該API發(fā)送請求來獲取驗證碼,由于不同的短信服務(wù)提供商可能具有不同的API和授權(quán)方式,我將以一個簡單的示例介紹如何使用Go語言來獲取短信驗證碼,需要的朋友可以參考下
    2023-07-07
  • golang簡單讀寫文件示例

    golang簡單讀寫文件示例

    這篇文章主要介紹了golang簡單讀寫文件的方法,實例分析了Go簡單文件讀取與寫入操作的相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • xorm根據(jù)數(shù)據(jù)庫生成go model文件的操作

    xorm根據(jù)數(shù)據(jù)庫生成go model文件的操作

    這篇文章主要介紹了xorm根據(jù)數(shù)據(jù)庫生成go model文件的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 如何使用工具自動監(jiān)測SSL證書有效期并發(fā)送提醒郵件

    如何使用工具自動監(jiān)測SSL證書有效期并發(fā)送提醒郵件

    本文介紹了如何開發(fā)一個工具,用于每日檢測SSL證書剩余有效天數(shù)并通過郵件發(fā)送提醒,工具基于命令行,通過SMTP協(xié)議發(fā)送郵件,需配置SMTP連接信息,本文還提供了配置文件樣例及代碼實現(xiàn),幫助用戶輕松部署和使用該工具
    2024-10-10
  • go?字符串修改的操作代碼

    go?字符串修改的操作代碼

    這篇文章主要介紹了go?字符串修改,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • go語言區(qū)塊鏈學習調(diào)用以太坊

    go語言區(qū)塊鏈學習調(diào)用以太坊

    這篇文章主要為大家介紹了go語言區(qū)塊鏈學習如何調(diào)用以太坊的示例實現(xiàn)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10

最新評論