一.Gin框架介紹與基本使用
1.基本介紹
- Gin是一個golang的微框架,封裝比較優雅,API友好,源碼注釋比較明確,具有快速靈活,容錯方便等特點
- 對於golang而言,web框架的依賴要遠比Python,Java之類的要小。自身的
net/http
足夠簡單,性能也非常不錯 - 借助框架開發,不僅可以省去很多常用的封裝帶來的時間,也有助於團隊的編碼風格和形成規范
- 由於使用了
httprouter
,速度提高了近40倍。 如果你是性能和高效的追求者, 你會愛上Gin
.
2.Gin框架安裝與使用
安裝
- 下載安裝Gin:
go get -u github.com/gin-gonic/gin
- 將其導入您的代碼中:
import "github.com/gin-gonic/gin"
-
(可選)導入net/http。例如,如果使用常量,則需要這樣做http.StatusOK。
import "net/http"
簡單示例
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
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")
}
3.RESTful API規范
REST與技術無關,代表的是一種軟件架構風格,REST是Representational State Transfer的簡稱,中文翻譯為“表征狀態轉移”或“表現層狀態轉化”。
推薦閱讀:阮一峰 理解RESTful架構
簡單來說,REST的含義就是客戶端與Web服務器之間進行交互的時候,使用HTTP協議中的4個請求方法代表不同的動作。
GET
用來獲取資源POST
用來新建資源PUT
用來更新資源DELETE
用來刪除資源。
只要API程序遵循了REST規范,那就可以稱為RESTful API。目前在前后端分離的架構中,前后端基本都是通過RESTful API來進行交互。
簡單示例
比如,編寫一個圖書管理系統,,我們可以查詢對一本書進行查詢、創建、更新和刪除等操作,我們在編寫程序的時候就要設計客戶端瀏覽器與我們Web服務端交互的方式和路徑。按照經驗我們通常會設計成如下模式:
請求方法 | URL | 含義 |
---|---|---|
GET | /book | 查詢書籍信息 |
POST | /create_book | 創建書籍記錄 |
POST | /update_book | 更新書籍信息 |
POST | /delete_book | 刪除書籍信息 |
同樣的需求我們按照RESTful API設計如下:
請求方法 | URL | 含義 |
---|---|---|
GET | /book | 查詢書籍信息 |
POST | /book | 創建書籍記錄 |
PUT | /book | 更新書籍信息 |
DELETE | /book | 刪除書籍信息 |
Gin框架支持開發RESTful API的開發。
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
// 1.創建路由
r:=gin.Default()
// 2. 綁定路由規則
// gin.Context,封裝了request和response
// 查
r.GET("/book", func(c *gin.Context) {
c.JSON(200,gin.H{
"message":"GET",
})
})
// 增
r.POST("/book", func(c *gin.Context) {
c.JSON(200,gin.H{
"message":"POST",
})
})
// 改
r.PUT("/book", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "PUT",
})
})
// 刪
r.DELETE("/book", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "DELETE",
})
})
// 3.監聽端口,默認8080
// run("里面不指定端口號默認為8080")
r.Run(":8000")
}
然后訪問地址:http://127.0.0.1:8000/book
開發RESTful API的時候我們通常使用Postman來作為客戶端的測試工具。