1. 程式人生 > >Gin框架系列01:極速上手

Gin框架系列01:極速上手

## Gin是什麼? Gin是Go語言編寫的web框架,具備中介軟體、崩潰處理、JSON驗證、內建渲染等多種功能。 ## 準備工作 本系列演示所有程式碼都在Github中,感興趣的同學可以自行查閱,歡迎大家一起完善。 ```shell https://github.com/pingyeaa/golang-examples/tree/master/gin ``` 沒有安裝配置Go語言環境的同學請先自行安裝,這裡不再贅述。首先,我們來建立工作目錄`gin`。 ```shell mkdir gin && cd gin ``` 然後用`go mod`命令初始化專案,`go mod`是Go語言的包管理工具,官方推薦使用,有了它就不再受GOPATH的限制,可以在任何目錄初始化專案。 ```shell go mod init gin ``` 接下來安裝`gin`庫。 ```shell go get -u github.com/gin-gonic/gin ``` 建立演示程式碼的入口檔案`main.go`,當前專案結構大致如下。 ```shell . ├── go.mod ├── go.sum └── main.go ``` ## 編寫程式碼 工作準備就緒之後,來開始今天的程式碼編寫,以經典程式碼`hello word`為例。 ### 例項化一個gin物件 ```go r := gin.Default() ``` Default方法的主要作用是例項化一個帶有日誌、故障恢復中介軟體的引擎。 ```go func Default() *Engine { debugPrintWARNINGDefault() engine := New() engine.Use(Logger(), Recovery()) return engine } ``` ### 定義請求 定義一個GET請求的路由,引數一是路由地址,也就是在瀏覽器訪問的相對路徑,引數二是一個匿名函式,函式內部用於業務邏輯處理。 ```go r.GET("/hello", func(c *gin.Context) { }) ``` 我們就在函式內呼叫JSON方法返回資料。JSON的操作非常簡單,引數一是狀態碼,引數二是JSON的內容。 ```go r.GET("/hello", func(c *gin.Context) { c.JSON(200, gin.H{ "msg": "Hello world!", }) }) ``` JSON內容可以通過gin提供的H方法來構建,非常方便。 ```go // H is a shortcut for map[string]interface{} type H map[string]interface{} ``` ### 執行 Run方法最終會呼叫內建`http`庫的`ListenAndServe`方法來監聽埠,如果不傳引數預設監聽80埠,也可以通過引數來變更地址和埠。 ```go r.Run(":8081") ``` ### 測試 在瀏覽器訪問`localhost:8081`,如果看到如下提示即成功。 ![file](https://img2020.cnblogs.com/other/1471773/202004/1471773-20200406175746824-1822938347.jpg) ### 完整程式碼 ```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{ "msg": "Hello world!", }) }) r.Run(":8081") } ``` --- Go語言庫程式碼示例,歡迎star https://github.com/pingyeaa/golang-examples --- 感謝大家的觀看,如果覺得文章對你有所幫助,歡迎關注公眾號「平也」,聚焦Go語言與技術原理。 ![關注我](https://img2020.cnblogs.com/other/1471773/202004/1471773-20200406175747590-1585320