PJCHENder 未整理筆記

[Gin] Gin 起步走(Gin Basic)

2020-06-10

[Gin] Gin 起步走(Gin Basic)

特色功能

  • 快速
  • 支援 middleware:HTTP 請求會透過一連串的 middleware 處理,例如 Logger、驗證、GZIP 等等
  • Crash-free:Gin 可以攔截 HTTP 請求過程中發生的 panic 並從中復活,如此你的伺服器將可以總是活著。
  • JSON validation:Gin 可以解析和驗證傳進來的 JSON
  • Routes grouping:可以以更有組織的方式整理路由
  • 錯誤管理
  • 內建轉譯畫面的功能

範例

建立路由並回傳 JSON

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func main() {
r := gin.Default()
r.GET("/ping", func(ctx *gin.Context) {
// 回傳字串
ctx.String(200, "pong")

// 回傳 JSON
ctx.JSON(200, gin.H{
"message": "pong",
})
})

// r.Run(":3000")
r.Run() // default localhost:8000
}

可以把 routes handler 抽成 function

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package main

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

// 回傳的 Type 是 *gin.Engine
func setupRouter() *gin.Engine {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.String(200, "pong")
})
return r
}

func main() {
r := setupRouter()
r.Run() // default localhost:8000
}

掃描二維條碼,分享此文章