2
在GAE Go中,爲了記錄,我們需要使用appengine.NewContext(r)
創建一個新的上下文,它返回context.Context
。Google App Engine context.Context vs gorilla context
如何使用此上下文在請求範圍設置/獲取變量?在Gorilla中,Context在上下文中有一個乾淨的Set/Get函數,這是我想在我的代碼中使用的。但是我不想導入2個不同的上下文包。
GAE日誌迫使您使用context.Context
。
//handlerFunc
func MyFunc(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
// I want to set request scoped variables in context and pass it to doSomething.
doSomething(ctx,w,r);
}
func doSomething(ctx context.Context, w http.ResponseWriter, r *http.Request) {
log.Debugf(ctx, "Beginning doSomething"); //requires context parameter
// get the request scoped variables from context. How? Use Gorilla Context?
}
創建自定義處理程序類型(將上下文作爲參數之一),並讓您的路由器或某些中間件(首先在鏈中)調用NewContext來初始化它。 – elithrar