Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.
Gin是用Golang開發的一個微框架,相似Martinier的API,重點是小巧、易用、性能好不少,也由於 httprouter 的性能提升了40倍。linux
首先,根據對應的操做系統選擇安裝包下載,git
在這裏我使用的是Centos 64位系統github
wget https://studygolang.com/dl/golang/go1.9.2.linux-amd64.tar.gz tar -zxvf go1.9.2.linux-amd64.tar.gz mv go/ /usr/local/
配置 /etc/profilegolang
vi /etc/profile
添加環境變量GOROOT和將GOBIN添加到PATH中web
export GOROOT=/usr/local/go export PATH=$PATH:$GOROOT/bin
添加環境變量GOPATH(這個可按實際狀況設置目錄位置)編程
export GOPATH=/usr/local/go/path
配置完畢後,執行命令令其生效segmentfault
source /etc/profile
在控制檯輸入go version
,若輸出版本號則安裝成功api
那麼你們會有些疑問,糾結go
自己有什麼東西,咱們剛剛設置的環境變量是什麼?緩存
一、 go
自己有什麼東西架構
首先,咱們在解壓的時候會獲得一個名爲go
的文件夾,其中包括了全部Go
語言相關的一些文件,在這下面又包含不少文件夾和文件,咱們來簡單說明其中主要文件夾的做爲:
Go
版本順序的API增量列表文件。這裏所說的API包含公開的變量、常量、函數等。這些API增量列表文件用於Go
語言API檢查go
、godoc
、gofmt
godoc
命令啓動一個Web程序展現這些文檔Go
標準庫後的全部歸檔文件(以.a
結尾的文件)。注意,你會發現其中有名稱爲linux_amd64
的文件夾,咱們稱爲平臺相關目錄。這類文件夾的名稱由對應的操做系統和計算架構的名稱組合而成。經過go install
命令,Go
程序會被編譯成平臺相關的歸檔文件存放到其中Go
自身、Go
標準工具以及標準庫的全部源碼文件Go
自己的全部相關文件二、 剛剛設置的環境變量是什麼
Go
的根目錄Go
的bin
下會存放可執行文件,咱們把他加入PATH中就能夠直接在命令行使用三、 工做區是什麼?
這在Go
中是一個很是重要的概念,在通常狀況下,Go
源碼文件必須放在工做區中,也就是說,咱們寫的項目代碼都必須放在咱們所設定的工做區中,雖然對於命令源碼文件來講,這不是必須的。但咱們大多都是前一種狀況。工做區其實就是一個對應特定工程的目錄,它應包含3個子目錄:src
目錄、pkg
目錄、bin
目錄
go install
命令安裝後的代碼包的歸檔文件(.a 結尾的文件)go install
命令完成安裝後,保存由Go命令源碼文件生成的可執行文件四、 什麼是命令源碼文件?
若是一個源碼文件被聲明屬於main
代碼包,且該文件代碼中包含無參數聲明和結果聲明的main
函數,則它就是命令源碼文件。命令源碼文件可經過go run
命令直接啓動運行
If using go1.5, ensure GO15VENDOREXPERIMENT=1 is set.
在命令行下執行安裝
go get -u github.com/kardianos/govendor
等待一會,安裝成功後。
咱們cd /usr/local/go/path
(第三方依賴包,會默認安裝在GOPATH的第一個目錄下)目錄,
執行ls
,能夠在工做區中看到bin
、pkg
、src
三個目錄。這就是咱們上面一小節所說的工做區了!
那麼,咱們所安裝的govendor去哪裏了呢?
答案就在工做區內,所生成的代碼包大概是這樣。咱們所須要的是編譯好的可執行文件,在/usr/local/go/path/bin
中。
path/ ├── bin │ └── govendor ├── pkg │ └── linux_amd64 │ └── github.com │ └── kardianos │ └── govendor │ ├── ... └── src └── github.com └── kardianos └── govendor ├── ...
你們還記得咱們先前在環境變量PATH
中設置了GOBIN,
咱們如今要作的就是把工做區中bin
目錄下的可執行文件govendor
給移動過去,或者你能夠將$GOPATH的BIN目錄給加入環境變量中
那樣就能夠直接在命令行直接執行govendor
了
mv /usr/local/go/path/bin/govendor /usr/local/go/bin/
移動成功後,在命令行執行govendor -version
,若出現版本號,則成功
#govendor -version $ v1.0.9
在這裏爲何單獨挑出一節來說govendor
呢?
你們能夠想一想,雖然咱們在本地開發,利用$GOPATH
達到安裝第三方依賴包,而後去使用他,彷佛也沒有什麼問題。
可是在實際的多人協做及部署中是有問題的
go get
不少次所以咱們在這簡單的使用govendor
來解決這個問題,在這個項目完成的最後,你只需govendor init
再govendor add +external
就能美滋滋的把依賴包都放到項目的vendor
目錄中,就能把它一同傳上你的版本庫裏了,是否是很方便呢。
固然了,目前官方推薦的包管理工具就有十幾種,你們能夠適當考察一下,這個不在本篇的範圍內。
在命令行下執行安裝
go get -u github.com/gin-gonic/gin
檢查/usr/local/go/path
中是否存在gin
的代碼包
編寫一個test.go
文件
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 }
執行test.go
go run test.go
訪問$HOST:8080/ping,若返回{"message":"pong"}
則正確
curl 127.0.0.1:8080/ping
至此,咱們的環境安裝都基本完成了:)
具體gin
的介紹從連載二開始,會講解Demo所涉及的知識點!