如何使用golangweb框架Gin

這篇文章主要講解了“如何使用golang web框架Gin”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何使用golang web框架Gin”吧!  

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、陸豐ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的陸豐網(wǎng)站制作公司

Gin是用Go(Golang)編寫(xiě)的Web框架。

準(zhǔn)備

  • 首先需要安裝Go(需要1.12+版本)

1. 安裝

  • github地址     https://github.com/gin-gonic/gin

新建目錄go-gin-test. 然后cd進(jìn)入目錄

?  mkdir go-gin-test
?  cd go-gin-test
 

我們使用 go mod作為我們項(xiàng)目的包管理。

初始化go.mod文件

go mod init example.com/m/v2 

可以使用下面的Go命令安裝Gin

go get -u github.com/gin-gonic/gin

看到如下輸出證明我們已經(jīng)安裝好了gin。

?  go-gin-test  go get -u github.com/gin-gonic/gin
go: github.com/gin-gonic/gin upgrade => v1.6.3
go: gopkg.in/yaml.v2 upgrade => v2.4.0
go: github.com/golang/protobuf upgrade => v1.5.2
go: github.com/modern-go/reflect2 upgrade => v1.0.1
go: github.com/modern-go/concurrent upgrade => v0.0.0-20180306012644-bacd9c7ef1dd
go: github.com/ugorji/go/codec upgrade => v1.2.5
go: golang.org/x/sys upgrade => v0.0.0-20210403161142-5e06dd20ab57
go: github.com/go-playground/validator/v10 upgrade => v10.4.2
go: github.com/json-iterator/go upgrade => v1.1.10
go: github.com/leodido/go-urn upgrade => v1.2.1
go: downloading github.com/golang/protobuf v1.5.2
go: downloading golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57
go: downloading github.com/go-playground/validator/v10 v10.4.2
go: downloading github.com/ugorji/go v1.2.5
go: downloading google.golang.org/protobuf v1.26.0
go: downloading github.com/ugorji/go/codec v1.2.5
go: golang.org/x/crypto upgrade => v0.0.0-20210322153248-0c34fe9e7dc2
go: google.golang.org/protobuf upgrade => v1.26.0
go: downloading golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2
 
  • 如果     go get長(zhǎng)時(shí)間未響應(yīng)或者出現(xiàn)超時(shí)建議使用     http://goproxy.cn/配置國(guó)內(nèi)代理 

2. Hello World

現(xiàn)在我們來(lái)編寫(xiě)我們的第一個(gè)web程序

?  go-gin-test tree -L 3
.
├── go.mod
└── go.sum
 

目前我們的目錄結(jié)構(gòu)如上所示

接下來(lái)

  • 新建     main.go文件
?  go-gin-test tree -L 3
.
├── go.mod
├── go.sum
├── mian.go

首先我們來(lái)編輯main.go文件

package main

import "github.com/gin-gonic/gin"

func main() {
 r := gin.Default()
 r.GET("/hello", func(c *gin.Context) {
  c.JSON(200, gin.H{
  "message": "hello world",
  })
 })
 r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

執(zhí)行go build -o hello來(lái)編譯為可執(zhí)行文件

?  go-gin-test go build -o hello
?  go-gin-test ls
go.mod   go.sum   hello    mian.go
 

執(zhí)行./hello讓我們的服務(wù)跑起來(lái)

?  go-gin-test ./hello
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
- using env:   export GIN_MODE=release
- using code:  gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /hello                    --> main.main.func1 (3 handlers)
[GIN-debug] Environment variable PORT is undefined. Using port :8080 by default
[GIN-debug] Listening and serving HTTP on :8080

 

打開(kāi)瀏覽器查看http://localhost:8080/hello

如何使用golang web框架Gin  
image.png

至此,我們已經(jīng)完成第一個(gè)web服務(wù)的構(gòu)建

3. Router的分組和封裝

在實(shí)際的生產(chǎn)活動(dòng)中,業(yè)務(wù)接口通常需要拆分成很多,例如/user/XXX、/api/XXX,那我們利用gin應(yīng)該怎么做呢?

我們接著上面的工程進(jìn)行改造

  • 新建     routerex文件夾
  • 新建     router.go文件
?  go-gin-test tree -L 3
.
├── go.mod
├── go.sum
├── hello
├── mian.go
└── routerex
  └── router.go

編輯router.go文件

package routerex

import "github.com/gin-gonic/gin"

func InitRouter(g *gin.Engine) {
  //第一組api接口 例如:http://localhost:8080/g1/hello1
  g1 := g.Group("g1")

  g1.GET("/hello1", func(c *gin.Context) {
  c.JSON(200, gin.H{
  "msg": "Hello g1",
  })
  })
  //第二組api接口 例如:http://localhost:8080/g1/hello1
  g2 := g.Group("g2")
  g2.GET("/hello2", func(c *gin.Context) {
  c.JSON(200, gin.H{
  "msg": "Hello g2",
  })
  })

}

 

編輯main.go文件

package main

import (
 "example.com/m/v2/routerex"
 "github.com/gin-gonic/gin"
)

func main() {
 r := gin.Default()
 routerex.InitRouter(r)
 r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}
 

同樣的執(zhí)行go build -o hello編譯

執(zhí)行./hello啟動(dòng)服務(wù)

打開(kāi)瀏覽器查看http://localhost:8080/g1/hello1http://localhost:8080/g2/hello2

如何使用golang web框架Gin  
image.png
如何使用golang web框架Gin  
image.png

可以看出我們已經(jīng)拆分了兩個(gè)不同的api組。并且封裝了router的注冊(cè)方式。

可以嘗試聯(lián)系以上方法

下一期內(nèi)容預(yù)告:

  • gin的中間件的使用
  • post和get接口不同的獲取參數(shù)方式
  • ...

想獲取工程的同學(xué)可以關(guān)注超級(jí)英雄吉姆,在公眾號(hào)里發(fā)送gin,獲取工程。

如果你有更多的想知道的內(nèi)容或者有什么好的建議,可以在評(píng)論里回復(fù),或者關(guān)注我的公眾號(hào)超級(jí)英雄吉姆,在公眾號(hào)留言,我看到后第一時(shí)間回復(fù)。

感謝各位的閱讀,以上就是“如何使用golang web框架Gin”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)如何使用golang web框架Gin這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

當(dāng)前文章:如何使用golangweb框架Gin
當(dāng)前路徑:http://www.muchs.cn/article26/jidocg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、商城網(wǎng)站、全網(wǎng)營(yíng)銷(xiāo)推廣做網(wǎng)站、外貿(mào)建站、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司