當前位置:首頁 » 硬碟大全 » gin緩存庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

gin緩存庫

發布時間: 2023-01-07 15:02:13

⑴ GO的gin框架,用PostForm獲取的是之前請求的值,看源碼使用了c.formCache[key],是緩存嗎,怎麼解決

你的gin是哪一個版本的?現在的版本里沒有你這個
c.formCache

⑵ GoLang -- Gin框架

• 何為框架:

框架一直是敏捷開發中的利器,能讓開發者很快的上手並做出應用,甚至有的時候,脫離了框架,一些開發者都不會寫程序了。成長總不會一蹴而就,從寫出程序獲取成就感,再到精通框架,快速構造應用,當這些方面都得心應手的時候,可以嘗試改造一些框架,或是自己創造一個。

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

(1)首先需要安裝,安裝比較簡單,使用go get即可

go get github.com/gin-gonic/gin

如果安裝失敗,直接去Github clone下來,放置到對應的目錄即可。

(2)代碼中使用:

下面是一個使用Gin的簡單例子:

package main

import (

"github.com/gin-gonic/gin"

)

func main() {

router := gin.Default()

router.GET("/ping", func(c *gin.Context) {

c.JSON(200, gin.H{

"message": "pong",

})

})

router.Run(":8080") // listen and serve on 0.0.0.0:8080

}

簡單幾行代碼,就能實現一個web服務。使用gin的Default方法創建一個路由handler。然後通過HTTP方法綁定路由規則和路由函數。不同於net/http庫的路由函數,gin進行了封裝,把request和response都封裝到gin.Context的上下文環境。最後是啟動路由的Run方法監聽埠。麻雀雖小,五臟俱全。當然,除了GET方法,gin也支持POST,PUT,DELETE,OPTION等常用的restful方法。

Gin可以很方便的支持各種HTTP請求方法以及返回各種類型的數據,詳情可以前往https://github.com/gin-gonic/gin查看。

2.1 匹配參數

我們可以使用Gin框架快速的匹配參數,如下代碼所示:

冒號:加上一個參數名組成路由參數。可以使用c.Param的方法讀取其值。當然這個值是字串string。諸如/user/rsj217,和/user/hello都可以匹配,而/user/和/user/rsj217/不會被匹配。

瀏覽器輸入以下測試:

返回結果為:

其中c.String是gin.Context下提供的方法,用來返回字元串。

其中c.Json是gin.Context下提供的方法,用來返回Json。

下面我們使用以下gin提供的Group函數,方便的為不同的API進行分類。

我們創建了一個gin的默認路由,並為其分配了一個組 v1,監聽hello請求並將其路由到視圖函數HelloPage,最後綁定到 0.0.0.0:8000

C.JSON是Gin實現的返回json數據的內置方法,包含了2個參數,狀態碼和返回的內容。http.StatusOK代表返回狀態碼為200,正文為{"message": 「welcome"}。

註:Gin還包含更多的返回方法如c.String, c.HTML, c.XML等,請自行了解。可以方便的返回HTML數據

我們在之前的組v1路由下新定義一個路由:

下面我們訪問

可以看到,通過c.Param(「key」)方法,Gin成功捕獲了url請求路徑中的參數。同理,gin也可以捕獲常規參數,如下代碼所示:

在瀏覽器輸入以下代碼:

通過c.Query(「key」)可以成功接收到url參數,c.DefaultQuery在參數不存在的情況下,會由其默認值代替。

我們還可以為Gin定義一些默認路由:

這時候,我們訪問一個不存在的頁面:

返回如下所示:

下面我們測試在Gin裡面使用Post

在測試端輸入:

附帶發送的數據,測試即可。記住需要使用POST方法.

繼續修改,將PostHandler的函數修改如下

測試工具輸入:

發送的內容輸入:

返回結果如下:

備註:此處需要指定Content-Type為application/x-www-form-urlencoded,否則識別不出來。

一定要選擇對應的PUT或者DELETE方法。

Gin框架快速的創建路由

能夠方便的創建分組

支持url正則表達式

支持參數查找(c.Param c.Query c.PostForm)

請求方法精準匹配

支持404處理

快速的返回給客戶端數據,常用的c.String c.JSON c.Data