【问题标题】:Creating API backend on App Engine在 App Engine 上创建 API 后端
【发布时间】:2014-12-18 10:14:51
【问题描述】:

我想使用 Go 在 App Engine 上为应用程序创建一个 rest 后端。

我已将我的文件安排为休闲:

-> app/
   -> auth/
     -> auth.go
   -> app.go
   -> app.yaml

通常我会在 app.go 中使用:import "github.com/user/app/auth" 导入 auth 包,但我收到一条错误消息,指出文件之间存在冲突(我现在无法粘贴该错误)。

在谷歌上寻找解决方案后,我发现如果我删除 github.com... 并且只删除 import "auth" 它会起作用,而且确实如此。

上面的解决方案是最好的解决方案吗?

【问题讨论】:

  • 您无法粘贴错误 -> 我们无法知道问题所在 -> 我们无法判断您的“修复”是否是解决方案
  • 您是否更新了所有导入?有一个指向 github.com/.../auth 和 auth 会导致这种类型的错误。

标签: google-app-engine go


【解决方案1】:

错误类似于Failed parsing input: app file auth/auth.go conflicts with same file imported from GOPATH?

我对@9​​87654321@ 的解读是,现在最好安排您的文件,以便您可以使用github.com/user/... 导入。这是由于 SDK 1.9.1 的新行为破坏了一些项目布局。使用import "auth" 大部分都可以工作,但它会破坏goapp test 并可能导致其他问题。

相反,我们的想法是确保在您的 app.yaml 和 app.go 级别或以下级别没有任何其他 go 代码。为此,您可以将auth 向上移动两级,到app 的父级,并将其导入为github.com/user/auth。如果您可以在其他应用程序中使用相同的代码,那将是有意义的。

-> app/
   -> app.go
   -> app.yaml
-> auth/
   -> auth.go

或者将auth上移一级,将yaml和app.go移到子目录中。如果你这样做,你必须 cd 到那个目录来运行goapp server,因为那是app.yaml 所在的地方。

-> app/
   -> auth/
      -> auth.go
   -> app/
      -> app.go
      -> app.yaml

无论哪种方式,*.go 与app.yaml 位于同一目录中的文件应该只有一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多