1. 程式人生 > >golang http框架gin (一)

golang http框架gin (一)

簡介

gin這個詞很迷,看柯南的同學應該知道這是杜松子酒。
這裡介紹的gin是一種golang的web框架,乍看之下用法和python的flask很像。這是一種對golang官方提供的httprouter的改進,測試下來比httprouter快40倍

安裝

go get github.com/gin-gonic/gin

使用

本節會解釋官網的快速入門例子,剩餘部分會在後續章節中羅列

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{ "message": "pong", }) }) r.Run() // listen and serve on 0.0.0.0:8080 }

這裡面的核心就是用gin.Default()方法生成一個gin router,然後再為其新增GET的query method,這裡是直接針對ping返回pong,我們來看一下執行狀況
執行main.go以後

wujingcideMacBook-Pro:studygin wujingci$ go run main.go
[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 /ping --> 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

打出了debug資訊告訴gin router的服務已經啟動在本機的8080埠上,我們來curl一下這個url,立刻收到了返回結果

wujingcideMacBook-Pro:~ wujingci$ curl -XGET localhost:8080/ping
{"message":"pong"}

這時候看一下server端的output

[GIN] 2018/01/07 - 09:02:25 | 200 |         150µs |             ::1 |  GET     /ping

多了這樣一些欄位
| TimeStamp | HttpStatusCode | 訪問地址 | HttpRequestMethod url