日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(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/ ,頁(yè)面輸出內(nèi)容為:

set name
set site
GoFrame: https://goframe.org


文章標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame請(qǐng)求輸入-自定義變量
瀏覽路徑:http://www.5511xx.com/article/dhshgjp.html