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

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

準備環節

1、安裝Golang

首先,根據對應的操做系統選擇安裝包下載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語言相關的一些文件,在這下面又包含不少文件夾和文件,咱們來簡單說明其中主要文件夾的做爲:

  • 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自己的全部相關文件

二、 剛剛設置的環境變量是什麼

  • GOROOT:Go的根目錄
  • GOPATH:用戶工做區
  • PATH下增長$GOROOT/bin:Gobin下會存放可執行文件,咱們把他加入PATH中就能夠直接在命令行使用

三、 工做區是什麼?

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

  • src:用於以代碼包的形式組織並保存Go源碼文件
  • pkg:用於存放經過go install命令安裝後的代碼包的歸檔文件(.a 結尾的文件)
  • bin:與pkg目錄相似,在經過go install命令完成安裝後,保存由Go命令源碼文件生成的可執行文件

四、 什麼是命令源碼文件?

若是一個源碼文件被聲明屬於main代碼包,且該文件代碼中包含無參數聲明和結果聲明的main函數,則它就是命令源碼文件。命令源碼文件可經過go run命令直接啓動運行

2、安裝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目錄中,就能把它一同傳上你的版本庫裏了,是否是很方便呢。

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

3、安裝Gin

在命令行下執行安裝

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

檢查/usr/local/go/path中是否存在gin的代碼包

4、測試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所涉及的知識點

參考

本系列示例代碼

本系列目錄

相關文檔

相關文章
相關標籤/搜索