新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame請(qǐng)求輸入-自定義變量
開發(fā)者可以在請(qǐng)求中自定義一些變量設(shè)置,自定義變量的獲取優(yōu)先級(jí)是最高的,可以覆蓋原有的客戶端提交參數(shù)。

自定義變量往往也可以做請(qǐng)求流程的變量共享,但是需要注意的是該變量會(huì)成為請(qǐng)求參數(shù)的一部分,是對(duì)業(yè)務(wù)執(zhí)行流程公開的變量。
方法列表:
func (r *Request) SetParam(key string, value interface{})
func (r *Request) GetParam(key string, def ...interface{}) interface{}
func (r *Request) GetParamVar(key string, def ...interface{}) *gvar.Var
自定義變量可以通過?SetParam?方法進(jìn)行設(shè)置。自定義變量的獲取可以通過請(qǐng)求參數(shù)的獲取方法獲得到,例如:?Get/GetVar/GetMap?等等,也可以通過特定的自定義變量方法獲取到?GetParam/GetParamVar?。
使用示例:
package main
import (
"github.com/GOgf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
)
// 前置中間件1
func MiddlewareBefore1(r *ghttp.Request) {
r.SetParam("name", "GoFrame")
r.Response.Writeln("set name")
r.Middleware.Next()
}
// 前置中間件2
func MiddlewareBefore2(r *ghttp.Request) {
r.SetParam("site", "https://goframe.org")
r.Response.Writeln("set site")
r.Middleware.Next()
}
func main() {
s := g.Server()
s.Group("/", func(group *ghttp.RouterGroup) {
group.Middleware(MiddlewareBefore1, MiddlewareBefore2)
group.ALL("/", func(r *ghttp.Request) {
r.Response.Writefln(
"%s: %s",
r.GetParamVar("name").String(),
r.GetParamVar("site").String(),
)
})
})
s.SetPort(8199)
s.Run()
}
可以看到,我們可以通過?SetParam?和?GetParam?來設(shè)置和獲取自定義的變量,該變量生命周期僅限于當(dāng)前請(qǐng)求流程。
執(zhí)行后,訪問 http://127.0.0.1:8199/ ,頁面輸出內(nèi)容為:
set name
set site
GoFrame: https://goframe.org
名稱欄目:創(chuàng)新互聯(lián)GoFrame教程:GoFrame請(qǐng)求輸入-自定義變量
分享地址:http://www.fisionsoft.com.cn/article/dhshgjp.html


咨詢
建站咨詢
