問題
GAEのcontextを取得する際、公式のサンプルでは以下のように取得しています。
import "google.golang.org/appengine"
func handler(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
}
しかしapiバージョンがgo1.8の場合は以下のようなエラーが出ると思います。
appengine: NewContext passed an unknown http.Request
これは、Go1.7で標準パッケージにcontextパッケージが追加されたことによる問題です。
解決策
以下のようにContextメソッドを使用することで、リクエストにスコープされたコンテキストを取得することが出来ます。
func handler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
}