日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gin ip 和 本地访问的结果不一样_golang web开发——gin实战之整合swagger

發布時間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gin ip 和 本地访问的结果不一样_golang web开发——gin实战之整合swagger 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

如果我們之前搞過java web開發,我們應該都知道swagger這個API文檔自動生成利器,有了swagger可以方便我們與客戶端的聯調,基本上是一目了然,swagger支持java,自然它也能支持golang的gin框架,本小節,就花費5分鐘的時間,快速整合一下gin和swagger,我們將在上一個分層的gin實戰基礎上,我們開始整合swagger

swagger

swagger的github地址

https://github.com/swaggo/gin-swagger

Step1

打開我們上一個小節搭建的工程,整體結構圖如下圖所示

項目骨架圖

我們打開goland的一個終端,運行如下命令

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

在沒有報錯的情況下,再運行swag init

這個時候你會發現你的項目中多了一個文件夾

Step2

在完成Step1之后,swagger的依賴基本上我們都有了,接下來,我們就要gin對swagger的url映射,或者我們在訪問瀏覽器的時候,我們怎么知道對應請求Swagger頁面的URL呢,我們回到我們之前配置映射的地方,如下圖所示,我們一開始只有一個對/movie/get/:id的依賴,接下來我們要新增對swagger的映射

修改一下,代碼編程如下,這個一般是固定格式,但是我們也要稍微了解一下其中的原理,其實并不復雜,如下代碼所示,下面第二處標紅的表示,我們多加一個GET映射,以/swagger前綴開頭的都交給你ginSwagger.WrapHandler這個處理器處理

好了,到此我們重新運行一下swag init,然后打開瀏覽器訪問如下地址

http://localhost:8080/swagger/index.html

到此為止,我們已經初步看到了swagger的熟悉的頁面了,雖然有報錯,但這是我們前進的一大步,接下來我們一步步進行潤色就可以了

Step3

我們為我們的swagger新增標題和說明,在golang中,我們只需要寫一些注解就可以達到上述的效果,我們在main函數中,增加如下的注釋和引入一下swagger doc的依賴,如下所示,重新運行swag init

重啟項目,再次打開瀏覽器,再次訪問上述網址,我們發現項目不再報錯,也可以看到該文檔的一些基本信息

不報錯的swagger頁面

Step4

為/movie/get/:id 新增接口說明,在spring mvc中,我們可以在接口方法上加一些注解,然后在入參和出參上加一些特定注解,說明參數含義,然后swagger就會自動幫助我們變成接口說明,在golang中也是一樣,我們再handlers中的各個func上加注釋,而不是加注解,也可以完成一樣的工作,我們在GetMovieById上加上如下的注釋,然后再次運行swag init就可以完成第一個接口說明了

重啟系統,然后再次訪問瀏覽器,我們可以看到最后的成果就出來了

并且我們可以成功的在里面請求我們的系統接口了

小結

簡而言之,golang版的swagger還是比較易懂好用,并且容易上手的,但是我們每次修改完注釋,都要重新swag init重新生成最新的文檔說明,這個也是我們要做注意的,下一個小節,我們將完整的編寫關于電影數據庫的增刪改查的功能

總結

以上是生活随笔為你收集整理的gin ip 和 本地访问的结果不一样_golang web开发——gin实战之整合swagger的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。