1. 程式人生 > 其它 >1-Gin框架簡介和快速使用

1-Gin框架簡介和快速使用

一 Go Web框架介紹

1.1 Gin

Gin是一個golang的微框架,封裝比較優雅,API友好,原始碼註釋比較明確。具有快速靈活,容錯方便等特點。其實對於golang而言,web框架的依賴要遠比Python,Java之類的要小。自身的net/http足夠簡單,效能也非常不錯。框架更像是一些常用函式或者工具的集合。藉助框架開發,不僅可以省去很多常用的封裝帶來的時間,也有助於團隊的編碼風格和形成規範。

目前在很多使用Golang的中小型公司中進行業務開發,使用Gin框架的很多,github的star數57k+

Gin框架原始碼地址:https://github.com/gin-gonic/gin

Gin框架文件地址:

https://gin-gonic.com/zh-cn/docs/

1.2 Beego

beego 是一個快速開發 Go 應用的 HTTP 框架,他可以用來快速開發 API、Web 及後端服務等各種應用,是一個 RESTful 的框架,主要設計靈感來源於 tornado、sinatra 和 flask 這三個框架,但是結合了 Go 本身的一些特性(interface、struct 嵌入等)而設計的一個框架。

Beego框架受歡迎的原因還有一個就是Beego是中國人開發的,文件都是中文的,star數量27k+

Beego框架原始碼地址:https://github.com/beego/beego/

Beego框架文件地址:

https://beego.vip/docs/intro/

1.3 Iris

Iris是一個高效、設計良好的跨平臺web框架,具有一系列強大的功能。通過無限的潛力和可移植性構建自己的高效能web應用程式和API,Iris與Gin的學習曲線幾乎相同,star數量22k+

Iris框架原始碼地址:https://github.com/kataras/iris

Iris框架文件地址:https://www.iris-go.com/docs/#/

1.4 Echo

高效能、可擴充套件、極簡的Go web框架:star數量22k+

//1 優化路由器
高度優化的 HTTP 路由器,動態記憶體分配為零,可智慧地對路由進行優先順序排序。
//2 可擴充套件
構建健壯且可擴充套件的 RESTful API,輕鬆組織成組。
//3 自動 TLS
自動安裝 TLS 證書,https訪問
//4 HTTP/2
HTTP/2 支援提高了速度並提供了更好的使用者體驗。
//5 中介軟體
許多內建的中介軟體可以使用,或者自己定義。中介軟體可以設定在根、組或路由級別。
//6 資料繫結
HTTP 請求負載的資料繫結,包括 JSON、XML 或表單資料。
//7 資料渲染
用於傳送各種 HTTP 響應的 API,包括 JSON、XML、HTML、檔案、附件、內聯、流或 Blob。
//8 模板
使用任何模板引擎進行模板渲染。
//9 可擴充套件
定製的中央 HTTP 錯誤處理。易於擴充套件的 API。

Echo框架原始碼地址:https://github.com/labstack/echo

Echo框架文件地址:https://echo.labstack.com/guide/

二 Gin安裝和快速使用

2.1 安裝

要安裝Gin軟體包,您需要安裝Go並首先設定Go工作區,Go 1.13 及以上版本

1.首先需要安裝Go

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

2.將其匯入您的程式碼中:

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

3.(可選)匯入net/http。例如,如果使用常量,則需要這樣做http.StatusOK。

import "net/http"

2.2 第一個hello world

package main

import (
    "net/http"
    "github.com/gin-gonic/gin"
)

func main() {
    // 1.建立路由
   r := gin.Default()
   // 2.繫結路由規則,執行的函式
   // gin.Context,封裝了request和response
   r.GET("/", func(c *gin.Context) {
      c.String(http.StatusOK, "hello World!")
   })
   // 3.監聽埠,預設在8080
   // Run("裡面不指定埠號預設為8080") 
   r.Run(":8000")
}

2.3 執行

//1 編譯並執行:go run example.go
//2 在瀏覽器中訪問 127.0.0.1:8080