2

私のGOPATHは$HOME/go、プロジェクトのソースコードを$HOME/go/src/myproj

2 つのファイルがあります。

app.yaml:

application: hello
version: 1
runtime: go
api_version: go1

handlers:
- url: /.*
  script: _go_app

そしてhello.go

package hello

import (
        "net/http"
        "github.com/gin-gonic/gin"
)

func ping(c *gin.Context) {
        c.JSON(200, gin.H{
                "message": "pong",
        })
}

func init() {
        r := gin.Default()

        api := r.Group("/api")
        {
          api.GET("/ping", ping)
        }

        http.Handle("/", r)
}

それから私は走りますdev_appserver.py .

できます、

curl http://127.0.0.1:8080/api/ping
{"message":"pong"}

次に、hello.go を次のように分割することにしました。

新しいhello.go

package hello

import (
        "net/http"
        "github.com/gin-gonic/gin"
        "./api"
        // "myproj/api" // does not work too
)

func init() {
        r := gin.Default()

        api.addRoute()

        http.Handle("/", r)
}

apiフォルダとapi/api.goファイル

package api

import (
        "github.com/gin-gonic/gin"
)

func ping(c *gin.Context) {
        c.JSON(200, gin.H{
                "message": "pong",
        })
}

func addRoute() {
        api := r.Group("/api")
        {
          api.GET("/ping", ping)
        }
}

その後dev_appserver.py .、もう一度実行しましたが、次のエラーが発生しました。

ERROR 2018-09-28 05:17:47,653 instance_factory.py:229] Go アプリケーションのビルドに失敗しました: (実行されたコマンド: /Users/gaco/.google-cloud-sdk/platform/google_appengine/goroot-1.9/bin/go -app-builder -app_base /Users/gaco/go/src/myproj -api_version go1 -arch 6 -dynamic -goroot /Users/gaco/.google-cloud-sdk/platform/google_appengine/goroot-1.9 -nobuild_files ^^$ -incremental_rebuild -unsafe -print_extras_hash hello.go api/api.go)

2018/09/28 14:17:47 go-app-builder: 入力の解析に失敗しました: アプリ ファイル api.go は、GOPATH からインポートされた同じファイルと競合します

警告 2018-09-28 05:17:47,654 instance.py:297] インスタンスの PID を取得できませんでした エラー 2018-09-28 05:17:47,654 instance.py:300] '_GoBuildFailureRuntimeProxy' オブジェクトに属性 '_process' がありません

何が問題ですか?どうすれば解決できますか?

4

1 に答える 1