在App Engine上创建API后端

时间:2014-10-16 09:27:11

标签: google-app-engine go

我想使用Go为App Engine上的应用程序创建一个休息后端。

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

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

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

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

解决方案是否最佳解决方案?

1 个答案:

答案 0 :(得分:2)

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

我对https://groups.google.com/forum/#!msg/google-appengine-go/dNhqV6PBqVc/ihzI5vgdE1EJ的解读是,现在更好地安排您的文件,以便您可以使用github.com/user/...导入。这是由于SDK 1.9.1的新行为破坏了一些项目布局。使用import "auth"大部分都会有效,但会中断goapp test并可能导致其他问题。

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

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

或者将auth向上移动一级,然后将yaml和app.go移动到子目录中。如果你这样做,你必须进入该目录才能运行goapp server,因为那是app.yaml所在的位置。

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

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