Gin實踐 連載一 Golang介紹與環境安裝

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

Golang介紹與環境安裝

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倍。

準備環節

一、安裝Golang

首先,根據對應的作業系統選擇安裝包下載,

在這裡我使用的是Centos 64位系統

wget https://studygolang.com/dl/golang/go1.9.2.linux-amd64.tar.gztar -zxvf go1.9.2.linux-amd64.tar.gzmv go/ /usr/local/

配置 /etc/profile

vi /etc/profile

添加環境變數GOROOT和將GOBIN添加到PATH中

export GOROOT=/usr/local/goexport PATH=$PATH:$GOROOT/bin

添加環境變數GOPATH(這個可按實際情況設定目錄位置)

export GOPATH=/usr/local/go/path

配置完畢後,執行命令令其生效

source /etc/profile

在控制台輸入go version,若輸出版本號碼則安裝成功

那麼大家會有些疑問,糾結go本身有什麼東西,我們剛剛設定的環境變數是什嗎?

  1. go本身有什麼東西

首先,我們在解壓的時候會得到一個名為go的檔案夾,其中包括了所有Go語言相關的一些檔案,在這下面又包含很多檔案夾和檔案,我們來簡單說明其中主要檔案夾的作為:

  • api:用於存放依照Go版本順序的API增量列表檔案。這裡所說的API包含公開的變數、常量、函數等。這些API增量列表檔案用於Go語言API檢查
  • bin:用於存放主要的標準命令檔案(可執行檔),包含gogodocgofmt
  • blog:用於存放官方部落格中的所有文章
  • doc:用於存放標準庫的HTML格式的程式文檔。我們可以通過godoc命令啟動一個Web程式展示這些文檔
  • lib:用於存放一些特殊的庫檔案
  • misc:用於存放一些輔助類的說明和工具
  • pkg:用於存放安裝Go標準庫後的所有歸檔檔案(以.a結尾的檔案)。注意,你會發現其中有名稱為linux_amd64的檔案夾,我們稱為平台相關目錄。這類檔案夾的名稱由對應的作業系統和計算架構的名稱組合而成。通過go install命令,Go程式會被編譯成平台相關的歸檔檔案存放到其中
  • src:用於存放Go自身、Go標準工具以及標準庫的所有源碼檔案
  • test:存放用來測試喝驗證Go本身的所有相關檔案
  1. 剛剛設定的環境變數是什麼
  • GOROOT:Go的根目錄
  • GOPATH:使用者工作區
  • PATH下增加$GOROOT/bin:Gobin下會存放可執行檔,我們把他加入PATH中就可以直接在命令列使用
  1. 工作區是什嗎?

這在Go中是一個非常重要的概念,在一般情況下,Go源碼檔案必須放在工作區中,也就是說,我們寫的項目代碼都必須放在我們所設定的工作區中,雖然對於命令源碼檔案來說,這不是必須的。但我們大多都是前一種情況。工作區其實就是一個對應特定工程的目錄,它應包含3個子目錄:src目錄、pkg目錄、bin目錄

  • src:用於以程式碼封裝的形式組織並儲存Go源碼檔案
  • pkg:用於存放通過go install命令安裝後的程式碼封裝的歸檔檔案(.a 結尾的檔案)
  • bin:與pkg目錄類似,在通過go install命令完成安裝後,儲存由Go命令源碼檔案產生的可執行檔
  1. 什麼是命令源碼檔案?

如果一個源碼檔案被聲明屬於main程式碼封裝,且該檔案代碼中包含無參數聲明喝結果聲明的main函數,則它就是命令源碼檔案。命令源碼檔案可通過go run命令直接啟動運行

二、安裝Govendor

If using go1.5, ensure GO15VENDOREXPERIMENT=1 is set.

在命令列下執行安裝

go get -u github.com/kardianos/govendor

等待一會,安裝成功後。

我們cd /usr/local/go/path(第三方依賴包,會預設安裝在GOPATH的第一個目錄下)目錄,

執行ls,可以在工作區中看到binpkgsrc三個目錄。這就是我們上面一小節所說的工作區了!

那麼,我們所安裝的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 initgovendor add +external就能美滋滋的把依賴包都放到項目的vendor目錄中,就能把它一同傳上你的版本庫裡了,是不是很方便呢。

當然了,目前官方推薦的包管理工具就有十幾種,大家可以適當考察一下,這個不在本篇的範圍內。

三、安裝Gin

在命令列下執行安裝

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

檢查/usr/local/go/path中是否存在gin的程式碼封裝

四、測試Gin是否安裝成功

編寫一個test.go檔案

package mainimport "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

至此,我們的環境安裝都基本完成了:)

參考

本系列範例程式碼

  • go-gin-example

相關文檔

  • Gin
  • Gin Web Framework
  • Go並發編程實戰
  • govendor

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.