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

Golang使用Swag搭建api文檔的全過程

 更新時(shí)間:2024年02月28日 10:40:33   作者:蜀中攻城獅  
Gin是Golang目前最為常用的Web框架之一,公司項(xiàng)目驗(yàn)收需要API接口設(shè)計(jì)說明書(Golang后端服務(wù)基于Gin框架編寫),所以本文給大家介紹了Golang使用Swag搭建api文檔的全過程,需要的朋友可以參考下

1. 簡介

GinGolang目前最為常用的Web框架之一。
公司項(xiàng)目驗(yàn)收需要API接口設(shè)計(jì)說明書(Golang后端服務(wù)基于Gin框架編寫),編寫任務(wù)自然就落到了我們研發(fā)人員身上。
項(xiàng)目經(jīng)理提供了文檔模板,讓我們參考模板來手動編寫,要求兩天內(nèi)完成,時(shí)間緊任務(wù)重。

看了下文檔中API接口設(shè)計(jì)內(nèi)容,很簡單,但是接口數(shù)量太多還需要調(diào)整文檔格式,手動編寫兩天肯定搞不定。
發(fā)現(xiàn)API接口設(shè)計(jì)內(nèi)容和swagger文檔格式很相近,那能不能使用工具生成swagger文檔后再轉(zhuǎn)換為word格式呢?

和項(xiàng)目經(jīng)理溝通了我的想法,項(xiàng)目經(jīng)理回答說,內(nèi)容豐富、格式統(tǒng)一就行,不要求完全參考模板中的格式來。
既然這樣,那就開干吧!

2. 生成swagger.json文檔

本章節(jié)僅為演示操作步驟,編寫得很簡潔。

2.1. 安裝swag

首先需要安裝swag命令行工具:go install github.com/swaggo/swag/cmd/swag@latest。

2.2. 新建示例項(xiàng)目

比如新建swagdoc項(xiàng)目:go mod init swagedoc。

2.3. 新建main.go文件并輸入示例代碼

package main

import (
    "net/http"

    "swagdoc/docs"

    "github.com/gin-gonic/gin"
    swaggerfiles "github.com/swaggo/files"
    ginSwagger "github.com/swaggo/gin-swagger"
)

// @BasePath /api/v1

// PingExample godoc
// @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() {
    r := gin.Default()
    docs.SwaggerInfo.BasePath = "/api/v1"
    v1 := r.Group("/api/v1")
    {
        eg := v1.Group("/example")
        {
            eg.GET("/helloworld", Helloworld)
        }
    }
    r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler))
    r.Run(":8080")
}

2.4. 生成swagger.json文檔

執(zhí)行命令swagger init命令生成swagger.json文檔。文件目錄結(jié)構(gòu)如下圖所示:

示例項(xiàng)目文件目錄結(jié)構(gòu)

2.5. 訪問api文檔

執(zhí)行下列命令運(yùn)行示例程序:

go mod tidy
go run ./main.go

在瀏覽器中訪問api文檔 :

在這里插入圖片描述

可以通過瀏覽器直接訪問api:

在這里插入圖片描述

在這里插入圖片描述

3. 常見問題

3.1. Error parsing type definition報(bào)錯(cuò)如何解決?

若出現(xiàn)解析類型定義的錯(cuò)誤,需要在執(zhí)行swage init時(shí)加上對應(yīng)的選項(xiàng):

在這里插入圖片描述

例如:swag init --parseDependency --parseInternal

3.2. 如何編寫api注釋?

參考 聲明式注釋格式。

4. 將swagger.json文檔轉(zhuǎn)換為word文檔

可以使用 swagger轉(zhuǎn)word文檔在線工具 來進(jìn)行轉(zhuǎn)換。

如果在線工具不能使用,可以自行參考網(wǎng)上教程在本地搭建轉(zhuǎn)換工具來進(jìn)行轉(zhuǎn)換,就不在此贅述了。

轉(zhuǎn)換后的word文檔效果圖如下所示:

在這里插入圖片描述

5. 參考資料

如何使用Swag將Go的注釋轉(zhuǎn)換為Swagger文檔?

源碼示例

以上就是Golang使用Swag搭建api文檔的全過程的詳細(xì)內(nèi)容,更多關(guān)于Golang Swag搭建api文檔的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • go?mod文件內(nèi)容版本號簡單用法詳解

    go?mod文件內(nèi)容版本號簡單用法詳解

    這篇文章主要為大家介紹了go?mod文件內(nèi)容版本號簡單用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Go 如何使用原始套接字捕獲網(wǎng)卡流量

    Go 如何使用原始套接字捕獲網(wǎng)卡流量

    為了減少對環(huán)境的依賴可以使用原始套接字捕獲網(wǎng)卡流量,然后使用?gopacket?的協(xié)議解析功能,這樣就省去了解析這部分的工作量,正確性也可以得到保證,同時(shí) CGO 也可以關(guān)閉,這篇文章主要介紹了Go 使用原始套接字捕獲網(wǎng)卡流量,需要的朋友可以參考下
    2024-07-07
  • 一文詳解如何使用 Golang 處理文件

    一文詳解如何使用 Golang 處理文件

    Golang 是一種強(qiáng)類型、靜態(tài)編譯、并發(fā)性高的編程語言,我們將重點(diǎn)介紹 Golang 中的文件基本操作,包括創(chuàng)建文件與查看狀態(tài),重命名與移動,刪除與截?cái)?,讀寫文件,以及權(quán)限控制,跟著小編一起來學(xué)習(xí)吧
    2023-04-04
  • golang實(shí)現(xiàn)unicode轉(zhuǎn)換為字符串string的方法

    golang實(shí)現(xiàn)unicode轉(zhuǎn)換為字符串string的方法

    這篇文章主要介紹了golang實(shí)現(xiàn)unicode轉(zhuǎn)換為字符串string的方法,實(shí)例分析了Go語言編碼轉(zhuǎn)換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • 用go實(shí)現(xiàn)反向代理的代碼示例

    用go實(shí)現(xiàn)反向代理的代碼示例

    當(dāng)實(shí)現(xiàn)反向代理時(shí),Go語言是一個(gè)強(qiáng)大而受歡迎的選擇,Go具有出色的并發(fā)性和網(wǎng)絡(luò)編程支持,使其成為構(gòu)建高性能反向代理的理想工具,在本文中,我將介紹如何使用Go語言實(shí)現(xiàn)一個(gè)簡單的反向代理服務(wù)器,并提供相應(yīng)的源代碼,需要的朋友可以參考下
    2023-06-06
  • Golang優(yōu)雅保持main函數(shù)不退出的辦法

    Golang優(yōu)雅保持main函數(shù)不退出的辦法

    很多時(shí)候我們需要讓main函數(shù)不退出,讓它在后臺一直執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于Golang優(yōu)雅保持main函數(shù)不退出的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 服務(wù)器端Go程序?qū)﹂L短鏈接的處理及運(yùn)行參數(shù)的保存

    服務(wù)器端Go程序?qū)﹂L短鏈接的處理及運(yùn)行參數(shù)的保存

    這篇文章主要介紹了服務(wù)器端Go程序?qū)﹂L短鏈接的處理及運(yùn)行參數(shù)的保存,這里針對使用Go語言編寫的Socket服務(wù)器進(jìn)行實(shí)例說明,需要的朋友可以參考下
    2016-03-03
  • Go?項(xiàng)目目錄布局保姆級教程

    Go?項(xiàng)目目錄布局保姆級教程

    這篇文章主要為大家介紹了Go?項(xiàng)目目錄布局保姆級教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Go 微服務(wù)開發(fā)框架DMicro設(shè)計(jì)思路詳解

    Go 微服務(wù)開發(fā)框架DMicro設(shè)計(jì)思路詳解

    這篇文章主要為大家介紹了Go 微服務(wù)開發(fā)框架DMicro設(shè)計(jì)思路詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Golang空接口與類型斷言的實(shí)現(xiàn)

    Golang空接口與類型斷言的實(shí)現(xiàn)

    本文主要介紹了Golang空接口與類型斷言的實(shí)現(xiàn),文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論