Gin框架系列01:極速上手

Gin是什麼?

Gin是Go語言編寫的web框架,具備中間件、崩潰處理、JSON驗證、內置渲染等多種功能。

準備工作

本系列演示所有代碼都在Github中,感興趣的同學可以自行查閱,歡迎大家一起完善。

<code>

https:

/

/github.com/pingyeaa

/golang-examples/tree

/master/gin

/<code>

沒有安裝配置Go語言環境的同學請先自行安裝,這裡不再贅述。首先,我們來創建工作目錄gin。

<code>mkdir gin && 

cd

gin/<code>

然後用go mod命令初始化項目,go mod是Go語言的包管理工具,官方推薦使用,有了它就不再受GOPATH的限制,可以在任何目錄初始化項目。

<code>

go

mod init gin/<code>

接下來安裝gin庫。

<code>go 

get

-u github.com/gin-gonic/gin/<code>

創建演示代碼的入口文件main.go,當前項目結構大致如下。

<code>.
├── 

go

.mod

├──

go

.sum

└──

main

.go

/<code>

編寫代碼

工作準備就緒之後,來開始今天的代碼編寫,以經典代碼hello word為例。

實例化一個gin對象

<code>r := gin.Default()/<code>

Default方法的主要作用是實例化一個帶有日誌、故障恢復中間件的引擎。

<code>

func

Default

()

*

Engine

{ debugPrintWARNINGDefault() engine := New() engine.Use(Logger(), Recovery())

return

engine }/<code>

定義請求

定義一個GET請求的路由,參數一是路由地址,也就是在瀏覽器訪問的相對路徑,參數二是一個匿名函數,函數內部用於業務邏輯處理。

<code>r.

GET

(

"/hello"

,

func

(

c

*gin.Context)

{ })/<code>

我們就在函數內調用JSON方法返回數據。JSON的操作非常簡單,參數一是狀態碼,參數二是JSON的內容。

<code>r.

GET

(

"/hello"

,

func

(

c

*gin.Context)

{

c

.

JSON

(

200

, gin.

H

{

"msg"

:

"Hello world!"

, }) })/<code>

JSON內容可以通過gin提供的H方法來構建,非常方便。

<code> 

type

H

map

[

string

]

interface

{}/<code>

運行

Run方法最終會調用內置http庫的ListenAndServe方法來監聽端口,如果不傳參數默認監聽80端口,也可以通過參數來變更地址和端口。

<code>

r

.Run

("

:8081")

/<code>

測試

在瀏覽器訪問localhost:8081,如果看到如下提示即成功。

Gin框架系列01:極速上手

完整代碼

<code>

package

main

import

"github.com/gin-gonic/gin"

func

main

()

{ r := gin.Default() r.GET(

"/ping"

,

func

(c *gin.Context)

{ c.JSON(

200

, gin.H{

"msg"

:

"Hello world!"

, }) }) r.Run(

":8081"

) }/<code>

Go語言庫代碼示例,歡迎star https://github.com/pingyeaa/golang-examples

感謝大家的觀看,如果覺得文章對你有所幫助,歡迎關注公眾號「平也」,聚焦Go語言與技術原理。

Gin框架系列01:極速上手


分享到:


相關文章: