哪些Golang包用于Google App Engine

时间:2015-11-30 15:01:09

标签: google-app-engine go google-identity-toolkit

我最近开始在App Engine上使用golang探索Google Identity Kit。我离开了googlesamples/identity-toolkit-go中的样本。在查看代码时,我发现了以下的一些appengine包:

"google.golang.org/appengine"
"google.golang.org/appengine/datastore"

对于我正在处理的GAE Golang应用程序,我使用GAE SDK使用goapp run运行应用程序。但是,在我的代码中,我只引用

"appengine"
"appengine/datastore"

因为这指向位于提取的go appengine sdk中的golang src。

我是否需要使用google.golang.org appengine软件包?

我只是在意识到身份套件方法所期望的appengine.Context与我使用的不匹配后才发现这一点。我收到了这个错误

`cannot use c (type "appengine".Context) as type "golang.org/x/net/context".Context in argument to client.ValidateToken. "appengine".Context does not implement "golang.org/x/net/context".Context (missing Deadline method)`

尽管我使用appengine.NewContext(r)作为解释的例子。

1 个答案:

答案 0 :(得分:2)

如果可以,我建议您使用google.golang.org/appengine套餐。他们使用该语言更好玩,主要是因为你提到的原因(contextnet/context),还因为这些库更新并且通常具有更多功能。特别是如果您计划使用其他Google服务(例如Google云端存储),您可以更轻松地使用新版库。

但它们也更好,因为 - 因为它们只是常规的可导入软件包 - 它们使用标准的go工具集更好:goimports用于自动格式化,gocode用于自动完成,等。

然而,它们并不完全完整。有一些功能missing or deprecated。根据我的经验,过去常见的主要缺失功能是aetest包,其中包含been ported,因此现在几乎没有理由不切换。