老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

go語言安裝gin go語言安裝包下載

Windows 下安裝 Gin 框架

本文主要講述一下 Windows 下安裝 Gin 框架以及遇到的一些坑。安裝前請先確保已安裝配置好 go 的語言環境。

成都創新互聯公司專業為企業提供安居網站建設、安居做網站、安居網站設計、安居網站制作等企業網站建設、網頁設計與制作、安居企業網站模板建站服務,十年安居做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。

官方安裝地址如下(請先往下看):

Gin中文文檔

1.添加兩個環境變量,否則 go get 命令會很慢,請參考如下網站:

GoProxy 中國

先設置一下代理,添加兩個環境變量,如下:

2.配置 Goland ,本人使用的開發工具是 Goland ,以下配置均以 Goland 開發工具為例。

這個操作的目的是讓我們可以在任意的位置創建我們的項目,而不用拘泥于 GOPATH 目錄下。

創建 go 項目的方式有兩種:

方式一:

此時會在項目中生成一個 go.mod 文件。

方式二(建議):

用 Goland 直接創建新項目,依次點擊 File-New-project-Go Modules (vgo) ,創建一個新的 go 項目。Location改成自己想要的位置即可。

后續的步驟跟方式一第三步類似,通過 go get 命令獲取 Gin 框架源碼。

在項目中創建一個 go 文件,這里我就直接拿 Gin 中文文檔中給的示例了。然后執行 go run 文件名,瀏覽器地址欄輸入 localhost:8080/ping ,看到輸出信息就說明成功了。

補充幾個命令:

import "github點抗 /gin-gonic/gin" 導入 gin 后可以執行如下命令:

本文結束!

go語言的webengine叫什么

Java教程

Linux入門

更多

首頁

?

Go語言WEB框架(Gin)詳解

在 Go語言開發的 Web 框架中,有兩款著名 Web 框架分別是 Martini 和 Gin,兩款 Web 框架相比較的話,Gin 自己說它比 Martini 要強很多。

Gin 是 Go語言寫的一個 web 框架,它具有運行速度快,分組的路由器,良好的崩潰捕獲和錯誤處理,非常好的支持中間件和 json。總之在 Go語言開發領域是一款值得好好研究的 Web 框架,開源網址:

首先下載安裝 gin 包:

go get -u github點抗 /gin-gonic/gin

一個簡單的例子:

package main

import "github點抗 /gin-gonic/gin"

func main() {

//Default返回一個默認的路由引擎

r := gin.Default()

r.GET("/ping", func(c *gin.Context) {

//輸出json結果給調用方

c.JSON(200, gin.H{

"message": "pong",

})

})

r.Run() // listen and serve on 0.0.0.0:8080

}

編譯運行程序,打開瀏覽器,訪問頁面顯示:

{"message":"pong"}

gin 的功能不只是簡單輸出 Json 數據。它是一個輕量級的 WEB 框架,支持 RestFull 風格 API,支持 GET,POST,PUT,PATCH,DELETE,OPTIONS 等 http 方法,支持文件上傳,分組路由,Multipart/Urlencoded FORM,以及支持 JsonP,參數處理等等功能,這些都和 WEB 緊密相關,通過提供這些功能,使開發人員更方便地處理 WEB 業務。

Gin 實際應用

接下來使用 Gin 作為框架來搭建一個擁有靜態資源站點,動態 WEB 站點,以及 RESTFull API 接口站點(可專門作為手機 APP 應用提供服務使用)組成的,亦可根據情況分拆這套系統,每種功能獨立出來單獨提供服務。

下面按照一套系統但采用分站點來說明,首先是整個系統的目錄結構,website 目錄下面 static 是資源類文件,為靜態資源站點專用;photo 目錄是 UGC 上傳圖片目錄,tpl 是動態站點的模板。

當然這個目錄結構是一種約定,可以根據情況來修改。整個項目已經開源,可以訪問來詳細了解:具體每個站點的功能怎么實現呢?請看下面有關每個功能的講述:

靜態資源站點

一般網站開發中,我們會考慮把 js,css,以及資源圖片放在一起,作為靜態站點部署在 CDN,提升響應速度。采用 Gin 實現起來非常簡單,當然也可以使用 net/http 包輕松實現,但使用 Gin 會更方便。

不管怎么樣,使用 Go 開發,我們可以不用花太多時間在 WEB 服務環境搭建上,程序啟動就直接可以提供 WEB 服務了。

package main

import (

"net/http"

"github點抗 /gin-gonic/gin"

)

func main() {

router := gin.Default()

// 靜態資源加載,本例為css,js以及資源圖片

router.StaticFS("/public", http.Dir("D:/goproject/src/github點抗 /ffhelicopter/tmm/website/static"))

router.StaticFile("/favicon.ico", "./resources/favicon.ico")

// Listen and serve on 0.0.0.0:80

router.Run(":80")

}

首先需要是生成一個 Engine,這是 gin 的核心,默認帶有 Logger 和 Recovery 兩個中間件。

router := gin.Default()

StaticFile 是加載單個文件,而 StaticFS 是加載一個完整的目錄資源:

func (group *RouterGroup) StaticFile(relativePath, filepath string) IRoutes

func (group *RouterGroup) StaticFS(relativePath string, fs http.FileSystem) IRoutes

這些目錄下資源是可以隨時更新,而不用重新啟動程序。現在編譯運行程序,靜態站點就可以正常訪問了。

GoLang -- Gin框架

? 何為框架:

框架一直是敏捷開發中的利器,能讓開發者很快的上手并做出應用,甚至有的時候,脫離了框架,一些開發者都不會寫程序了。成長總不會一蹴而就,從寫出程序獲取成就感,再到精通框架,快速構造應用,當這些方面都得心應手的時候,可以嘗試改造一些框架,或是自己創造一個。

Gin是一個golang的微框架,封裝比較優雅,API友好,源碼注釋比較明確,已經發布了1.0版本。具有快速靈活,容錯方便等特點。其實對于golang而言,web框架的依賴要遠比Python,Java之類的要小。自身的net/http足夠簡單,性能也非常不錯。框架更像是一些常用函數或者工具的集合。借助框架開發,不僅可以省去很多常用的封裝帶來的時間,也有助于團隊的編碼風格和形成規范。

(1)首先需要安裝,安裝比較簡單,使用go get即可

go get github點抗 /gin-gonic/gin

如果安裝失敗,直接去Github clone下來,放置到對應的目錄即可。

(2)代碼中使用:

下面是一個使用Gin的簡單例子:

package main

import (

"github點抗 /gin-gonic/gin"

)

func main() {

router := gin.Default()

router.GET("/ping", func(c *gin.Context) {

c.JSON(200, gin.H{

"message": "pong",

})

})

router.Run(":8080") // listen and serve on 0.0.0.0:8080

}

簡單幾行代碼,就能實現一個web服務。使用gin的Default方法創建一個路由handler。然后通過HTTP方法綁定路由規則和路由函數。不同于net/http庫的路由函數,gin進行了封裝,把request和response都封裝到gin.Context的上下文環境。最后是啟動路由的Run方法監聽端口。麻雀雖小,五臟俱全。當然,除了GET方法,gin也支持POST,PUT,DELETE,OPTION等常用的restful方法。

Gin可以很方便的支持各種HTTP請求方法以及返回各種類型的數據,詳情可以前往查看。

2.1 匹配參數

我們可以使用Gin框架快速的匹配參數,如下代碼所示:

冒號:加上一個參數名組成路由參數。可以使用c.Param的方法讀取其值。當然這個值是字串string。諸如/user/rsj217,和/user/hello都可以匹配,而/user/和/user/rsj217/不會被匹配。

瀏覽器輸入以下測試:

返回結果為:

其中c.String是gin.Context下提供的方法,用來返回字符串。

其中c.Json是gin.Context下提供的方法,用來返回Json。

下面我們使用以下gin提供的Group函數,方便的為不同的API進行分類。

我們創建了一個gin的默認路由,并為其分配了一個組 v1,監聽hello請求并將其路由到視圖函數HelloPage,最后綁定到 0.0.0.0:8000

C.JSON是Gin實現的返回json數據的內置方法,包含了2個參數,狀態碼和返回的內容。http.StatusOK代表返回狀態碼為200,正文為{"message": “welcome"}。

注:Gin還包含更多的返回方法如c.String, c.HTML, c.XML等,請自行了解。可以方便的返回HTML數據

我們在之前的組v1路由下新定義一個路由:

下面我們訪問

可以看到,通過c.Param(“key”)方法,Gin成功捕獲了url請求路徑中的參數。同理,gin也可以捕獲常規參數,如下代碼所示:

在瀏覽器輸入以下代碼:

通過c.Query(“key”)可以成功接收到url參數,c.DefaultQuery在參數不存在的情況下,會由其默認值代替。

我們還可以為Gin定義一些默認路由:

這時候,我們訪問一個不存在的頁面:

返回如下所示:

下面我們測試在Gin里面使用Post

在測試端輸入:

附帶發送的數據,測試即可。記住需要使用POST方法.

繼續修改,將PostHandler的函數修改如下

測試工具輸入:

發送的內容輸入:

返回結果如下:

備注:此處需要指定Content-Type為application/x-www-form-urlencoded,否則識別不出來。

一定要選擇對應的PUT或者DELETE方法。

Gin框架快速的創建路由

能夠方便的創建分組

支持url正則表達式

支持參數查找(c.Param c.Query c.PostForm)

請求方法精準匹配

支持404處理

快速的返回給客戶端數據,常用的c.String c.JSON c.Data

go語言框架gin之集成swagger

1.先安裝Go對應的開源Swagger相關的庫

go get?github點抗 /swaggo/swag/cmd/swag

go get github點抗 /swaggo/gin-swagger

go get?github點抗 /swaggo/files

go get?github點抗 /alecthomas/template

2.驗證是否安裝成功:swag -v

3.針對接口寫入注解

// @Summary 獲取多個標簽

// @Tags 標簽

// @Produce? json

// @Param name query string false "標簽名稱" maxlength(100)

// @Param state query int false "狀態" Enums(0, 1) default(1)

// @Param page query int false "頁碼"

// @Param page_size query int false "每頁數量"

// @Success 200 {object} model.TagSwagger "成功"

// @Failure 400 {object} errcode.Error "請求錯誤"

// @Failure 500 {object} errcode.Error "內部錯誤"

// @Router /api/v1/tags [get]

func (t Tag) List(c *gin.Context) {

}

// @Summary 新增標簽

// @Tags 標簽

// @Produce? json

// @Param name body string true "標簽名稱" minlength(3) maxlength(100)

// @Param state body int false "狀態" Enums(0, 1) default(1)

// @Param created_by body string false "創建者" minlength(3) maxlength(100)

// @Success 200 {object} model.Tag "成功"

// @Failure 400 {object} errcode.Error "請求錯誤"

// @Failure 500 {object} errcode.Error "內部錯誤"

// @Router /api/v1/tags [post]

func (t Tag) Create(c *gin.Context) {

}

// @Summary 更新標簽

// @Tags 標簽

// @Produce? json

// @Param id path int true "標簽ID"

// @Param name body string false "標簽名稱" minlength(3) maxlength(100)

// @Param state body int false "狀態 (0為未刪除、1為已刪除)" Enums(0, 1) default(1)

// @Param modified_by body string true "修改者" minlength(3) maxlength(100)

// @Success 200 {array} model.Tag "成功"

// @Failure 400 {object} errcode.Error "請求錯誤"

// @Failure 500 {object} errcode.Error "內部錯誤"

// @Router /api/v1/tags/{id} [put]

func (t Tag) Update(c *gin.Context) {

}

4.針對整個項目進行注解,直接在main方法寫入如下注解

//@title 項目名稱

//@version 1.0

//@description 這里是描述

func main() {

5.生成執行 swag init

這時會在我項目的docs文件夾下面生成docs.go、swagger.json、swagger.yaml三個文件

6.要在routers中進行默認初始化和注冊對應的路由:

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

同時要引用 _"blog-service/docs" ,不然會報錯

7.查看接口文檔 :

8.ok,完成


網頁標題:go語言安裝gin go語言安裝包下載
轉載來于:http://www.xueling.net.cn/article/ddsepgh.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 免费A级毛片中文字幕 | 蜜桃狠狠狠狠狠狠 | 亚洲精品久久30p | 国产第一页视频在线播放 | 欧美日本一道本在线视频 | 男人天堂日韩 | 国产资源视频 | 兔子先生视频在线播放 | 9191网站 | 亚洲欧美在线视频观看 | 一级黄色免费观看视频 | 国产精品一区二区在线观看 | 日日夜夜中文字幕 | 欧美日韩视频精品二区 | 一个人免费观看视频WWW中文 | 日本www在线 | 日韩精品成人免费观看视频 | 爱性久久久久久久 | 欧美在线免费看视频 | 法国性迷宫1997未删减 | 激情偷乱人伦小说视频在线 | 欧美亚成人 | 国产∨亚洲V天堂无码久久久 | 国产女同疯狂作爱系列 | 天天摸天天看 | 怡红院久久 | 国产ts人妖一区二区三区 | 国产一级高清视频 | 国产天堂亚洲国产碰碰 | 国产真实乱子伦精品视频 | 天天爽av | 91一区在线 | 国产一及黄色 | 国产黄色片av | 亚洲精品国产美女久久久 | 国产视频xxxx | 被主人带到调教室调教 | 激情内射日本一区二区三区 | 日韩欧美一区二区三区免费看 | 中文字幕一区二区三区久久蜜桃 | 亚洲中文字幕婷婷在线 |