【go語言開發】swagger安裝和使用

本文主要介紹go-swagger的安裝和使用,首先介紹如何安裝swagger,測試是否成功;然后列出常用的注釋和給出使用例子;最后生成接口文檔,并在瀏覽器上測試

文章目錄

  • 安裝
  • 注釋說明
    • 常用注釋
    • 參考例子
  • 文檔生成
    • 格式化文檔
    • 生成docs.go
    • 設置路由訪問
    • 瀏覽器訪問

安裝

命令行安裝swagger最新庫

go install github.com/swaggo/swag/cmd/swag@latest

其他安裝文件

go get -u github.com/swaggo/gin-swagger   
go get -u github.com/swaggo/files
# 模版
go get -u github.com/alecthomas/template

swag -v測試swagger是否安裝成功:
在這里插入圖片描述
查看常用命令:
在這里插入圖片描述

注釋說明

常用注釋

當使用 Go Swagger 時,可以使用不同的注釋標記來描述 API 的各個方面,以便生成符合 OpenAPI 規范的 Swagger 文檔。以下是常用的 Swagger 注釋說明,列出了所有的注釋標記:

  • @Summary:用于描述 API 操作的簡要概述。

  • @Description:用于提供對 API 操作的詳細描述和說明。

  • @ID:用于指定 API 操作的唯一標識符。

  • @Param:用于描述 API 操作的參數,包括參數名、位置、數據類型、是否必需等信息。

  • @Success:用于描述 API 操作的成功響應,包括狀態碼、響應數據結構等信息。

  • @Failure:用于描述 API 操作的失敗響應,包括狀態碼、響應數據結構等信息。

  • @Router:用于指定 API 路由的信息,包括路徑、HTTP 方法等。

  • @Accept:用于指定 API 操作支持的請求內容類型。

  • @Produce:用于指定 API 操作產生的響應內容類型。

參考例子

注冊:

// Register 用戶注冊
//
//	@Summary	用戶注冊
//	@Produce	json
//	@Router		/api/user/register [post]
//	@Param		username	query	string	true	"用戶名"
//	@Param		password	query	string	true	"密碼"
//	@Param		mobile		query	string	true	"電話"
func Register(c *gin.Context) {userName := c.Query("username")password := c.Query("password")mobile := c.Query("mobile")...
}

main.go

//	@title			code-go api
//	@version		1.0
//	@description	code-go項目swagger api介紹
//	@termsOfService	http://swagger.io/terms///	@contact.name	貓哥說
//	@contact.url	www.maogeshuo.com
//	@contact.email	support@swagger.io//	@license.name	Apache 2.0
//	@license.url	http://www.apache.org/licenses/LICENSE-2.0.html//	@host		localhost:8080
//	@BasePath	///	@securityDefinitions.basic	BasicAuth// @externalDocs.description	OpenAPI
// @externalDocs.url			https://swagger.io/resources/open-api/
func main() {
...
}

文檔生成

格式化文檔

swag fmt

生成docs.go

swag init

在這里插入圖片描述
執行完swag init,會生成圈紅區域文件

在這里插入圖片描述

設置路由訪問

參考截圖配置路由路徑

norm.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

在這里插入圖片描述

瀏覽器訪問

瀏覽器輸入訪問地址:http://localhost:8080/swagger/index.html

在這里插入圖片描述
在這里插入圖片描述


歡迎大家訪問個人博客網址:https://www.maogeshuo.com,博主努力更新中…

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/714657.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714657.shtml
英文地址,請注明出處:http://en.pswp.cn/news/714657.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++從零開始的打怪升級之路(day39)

這是關于一個普通雙非本科大一學生的C的學習記錄貼 在此前,我學了一點點C語言還有簡單的數據結構,如果有小伙伴想和我一起學習的,可以私信我交流分享學習資料 那么開啟正題 今天分享的是關于模板的知識點 1.非類型模板參數 模板參數分為…

大模型生成,Open API調用

大模型是怎么生成結果的 通俗原理 其實,它只是根據上文,猜下一個詞(的概率)…… OpenAI 的接口名就叫【completion】,也證明了其只會【生成】的本質。 下面用程序演示【生成下一個字】。你可以自己修改 prompt 試試…

高并發下的 AtomicReference 性能陷阱

介紹 Java 提供了 AtomicInteger/AtomicLong 在并發編程里經常用到,它們封裝了對 int 和 long 的原子操作。 Java 還提供了 AtomicReference,用于對象引用做原子性的管理,比如 get、set、CAS。 一般情況下 AtomicInteger、AtomicLong 的性能…

mac新環境

1、maven 設置阿里云鏡像 打開Maven的settings.xml文件。找到<mirrors>標簽&#xff0c;如果沒有&#xff0c;可以手動添加。在<mirrors>標簽內部添加以下內容&#xff1a; <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorO…

【C++】類的轉換函數

使用場景 C中當你創建了一個類&#xff0c;你想把這個類對象轉換成基本類型的函數。類對象->基本類型對象 原理 如下實例&#xff0c;設計一個分數類&#xff0c;實現分數轉換成double 浮點數的轉換函數。并在mian函數隱式調用。 #include<iostream> class Fractio…

6. 使用 Spring Boot進行開發(Developing with Spring Boot)

6. 使用 Spring Boot進行開發&#xff08;Developing with Spring Boot&#xff09; 本節詳細介紹了如何使用Spring Boot。它涵蓋考慮構建系統、自動配置以及如何運行應用程序等主題。我們還介紹一些 Spring Boot 最新做法。雖然 Spring Boot 沒有什么特別之處&#xff08;它只…

Java 接口和抽象類有何區別?

Java接口&#xff08;Interface&#xff09;和抽象類&#xff08;Abstract Class&#xff09;都是面向對象編程中用于實現多態和代碼復用的重要概念&#xff0c;但它們之間有幾個關鍵的區別&#xff1a; 1. **實例化**&#xff1a; - **接口**&#xff1a;不能被實例化。它…

【Spring連載】使用Spring Data訪問 MongoDB----對象映射之JSON Schema

【Spring連載】使用Spring Data訪問 MongoDB----對象映射之JSON Schema 一、生成Schema二、加密字段三、JSON Schema類型 從3.6版本開始&#xff0c;MongoDB支持根據提供的 JSON Schema驗證documents的集合。在創建集合時&#xff0c;可以定義schema本身以及驗證操作和級別&…

Python爬蟲Cookies 池的搭建

Cookies 池的搭建 很多時候&#xff0c;在爬取沒有登錄的情況下&#xff0c;我們也可以訪問一部分頁面或請求一些接口&#xff0c;因為畢竟網站本身需要做 SEO&#xff0c;不會對所有頁面都設置登錄限制。 但是&#xff0c;不登錄直接爬取會有一些弊端&#xff0c;弊端主要有…

南京師范大學計電院數據結構課設——排序算法

1 排序算法 1.1 題目要求 編程實現希爾、快速、堆排序、歸并排序算法。要求首先隨機產生10000個數據存入磁盤文件&#xff0c;然后讀入數據文件&#xff0c;分別采用不同的排序方法進行排序并將結果存入文件中。 1.2 算法思想描述 1.2.1 隨機數生成 當需要生成一系列隨機數…

windows 11 前后端項目部署

目錄 1.準備環境&#xff1a; 2.安裝jdk 測試&#xff1a;winr 輸入cmd 3.安裝tomcat 4.安裝mysql 遠程導入數據&#xff1a; 外部后臺訪問&#xff1a;192.168.232.1:8080/crm/sys/loginAction.action?usernamezs&password123 5.安裝nginx 前后端部署&#xff1…

qsort函數的模擬實現(冒泡排序模擬)

冒泡排序&#xff1a; 從第一個元素開始&#xff0c;依次比較相鄰的兩個元素&#xff0c;如果順序不對就交換它們。 經過一輪遍歷后&#xff0c;最大&#xff08;或最小&#xff09;的元素會排在最后。 重復進行上述步驟&#xff0c;直到沒有任何元素需要交換&#xff0c;即…

Linux了解

簡介 Linux是一種自由和開放源代碼的類UNIX操作系統&#xff0c;由芬蘭的Linus Torvalds于1991年首次發布。Linux最初是作為支持英特爾x86架構的個人電腦的一個自由操作系統&#xff0c;現在已經被移植到更多的計算機硬件平臺&#xff0c;如手機、平板電腦、路由器、視頻游戲控…

爬蟲入門到精通_實戰篇8(分析Ajax請求并抓取今日頭條美食美圖)_界面上抓取Ajax方式

1 目標 目標&#xff1a; 抓取今日頭條美食美圖&#xff0c;如下&#xff1a; 一些網頁直接請求得到的HTML代碼并沒有在網頁中看到的內容&#xff0c;因為一些信息是通過Ajax加載&#xff0c;并通過js渲染生成的&#xff0c;這時就需要通過分析網頁的請求來獲取想要爬取的內容…

解決conda環境下import TensorFlow失敗的問題

問題描述 安裝了anaconda的電腦&#xff0c;新建了一個名叫deeplearning的環境&#xff0c;在該環境下已經成功安裝了tensorflow。 于是在終端打開python并執行代碼 import tensorflow as tf print(1)除了提示 2024-02-27 21:50:00.801427: I external/local_tsl/tsl/cuda/c…

CSS 盒子模型(box model)

概念 所有HTML元素可以看作盒子&#xff0c;在CSS中&#xff0c;"box model"這一術語是用來設計和布局時使用CSS盒模型本質上是一個盒子&#xff0c;封裝周圍的HTML元素&#xff0c;它包括&#xff1a;外邊距(margin)&#xff0c;邊框(border)&#xff0c;內邊距(pad…

關于 HTTP 協議,你了解多少

HTTP協議 FastAPI 是建立在 HTTP 協議之上&#xff0c;所以為了更好的掌握 FastAPI。我們需要先簡單的了解一下 HTTP協議 簡介 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;遵循經典的客戶端-服務器模型&#xff0c;客戶端打開連接以發出請求&#xff0c;然后等…

【Go語言】Go語言中的流程控制

Go語言中的流程控制 流程控制主要用于設定計算執行的順序&#xff0c;簡歷程序的邏輯結果&#xff0c;Go語言的流程控制語句與其他語言類似&#xff0c;支持如下幾種流程控制語句&#xff1a; 條件語句&#xff1a;用于條件判斷&#xff0c;對應的關鍵字有if、else和else if&a…

SQL 語句的執行順序

數據庫引擎在執行SQL語句并不是從SELECT開始執行&#xff0c;而是從FROM開始&#xff0c;執行順序如下(關鍵字前面的數字代表SQL執行的順序步驟)&#xff1a; ⑧SELECT ⑨DISTINCT ⑩①【Top Num】 【select list】 ①FROM {left_table_name} ③【join_type】 JOIN {righ…

vuecli配置sass

vuecli5如何配置sass sass有很多優勢&#xff0c;可以減少css重復&#xff0c;提高效率等&#xff0c;本人使用了 vuecli5 node -v 查看node版本根據版本安裝node-sass sass-loader 如我的版本“node-sass”: “^4.14.1”,“sass-loader”: “^7.1.0”,node -vv14.15.0&#…