問題タブ [google-app-engine-go]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - go run: 非メイン パッケージを実行できません
シンプルな go アプリケーションです。次のコードを実行すると、「go run: cannot run non-main package」エラーが発生します。
それを修正するには、パッケージにmain
. しかし、なぜそれをする必要があるのか わかりません。パッケージには好きな名前を付けることができるはずです。
別の質問ですが、メイン関数はプログラムのエントリ ポイントであることはわかっています。必要です。そうしないと機能しません。しかし、メイン関数を持たないコードがまだ機能していることがわかります。
このリンクをクリックすると、ページの下部にある例ではパッケージのメインとメイン関数が使用されていませんが、それでも機能します。なぜなのか興味があります。
https://developers.google.com/appengine/docs/go/gettingstarted/usingdatastore
google-app-engine - Google App Engine: ローカル GAE 開発サーバーでリモート API を使用する
Remote API を使用してデータストアにアクセスする非 GAE バックエンドがあります。これを (プロキシ GAE サービスなしで) 行う唯一の方法は、GAE Remote API を使用することです。
これは、リモート コンテキストを GAE の運用環境に接続する場合には問題なく機能しますが、GAE 開発サーバーについてはどうでしょうか?
何かを展開する前に、変更をローカルでテストできるようにしたいと考えています。リモート API をローカルの GAE 開発サーバー データストアに接続する方法はありますか?
関連するサンプル コード:
をチェックしてくださいhost
。これをローカルの GAE 開発サーバーに設定する方法はありますか?
google-app-engine - Golang で http.FileServer を使用して GAE で 404 エラーを処理する方法
Hugo で生成された (半) 静的な Web サイトを提供するために Google App Engine を使用しています。すべてのHTMLファイルが保存され、提供されるディレクトリ「public」があります。たとえば、連絡先フォームを処理するためのサーバー側スクリプトもいくつかあります。ファイルはapp.yaml
こんな感じ。
そして、簡略化されたmain.go
ファイルは次のようになります
これは完全にうまく機能し、html ファイルを提供します。ただし、ページが見つからず、応答が404 Not Found
たとえば (またはその他のサーバーエラー) である場合を処理するソリューションを検討しています。
私の考えは、で渡すことができhttp.Handle("/", myCustomHandler)
、サーバーの応答を処理し、必要に応じてカスタムなどにリダイレクトするカスタムハンドラーを作成することでした404.html
。私は Go が初めてで、これをどのように実装する必要があるのか わかりません。Gorilla Mux も調べましたが、(可能であれば) シンプルにするために外部ライブラリを使用しないことをお勧めします。
この投稿に基づいて、次のことを試しました
このソリューションは、HTML ページも提供するという意味では機能しますが、サーバーの応答コードを処理する方法がまだわかりません。
どんな助けでも大歓迎です。ありがとう!
google-app-engine - golang appengine api テスト エラー「appengine: NewContext が不明な http.Request を渡しました」
appengine と golang を使用して単純な RESTful API を開発しています。goapp serve を使用してサービスを開始すると、コードは正常に動作し、API エンドポイントをテストするための単体テスト関数を書き始めました。ここでパニック エラーが発生しましappengine: NewContext passed an unknown http.Request
た。を実行すると、このエラーが発生しますgoapp test
。
何らかの理由で、作成したリクエストを渡して渡すことができないようですappengine.NewContext()
以下はコードのスニペットです..
簡単な再現可能なコードを作成しました。これで私を助けてもらえますか?または appengine に golang API プロジェクトがあり、エンドポイントをテストするための単体テスト機能を持っている人はいますか?彼らのコードを見てみたいと思います...
これは、私が投稿したgitlab の問題です。これには、問題に必要なすべての詳細と、例および詳細なエラー メッセージが含まれています。ご協力ありがとうございます。
google-app-engine - Go Google App Engine Standard を使用したクラウド エンドポイントは可能ですか?
以下を使用して、Google App Engine Standard の Go にシンプルな API を実装しました。
特にない。ただし、より優れたモニタリングと診断を行うために、代わりに Cloud Endpoints を使用するようにこのコードを移植したいと考えています。
STANDARD インスタンスでも可能ですか、それとも FLEXIBLE に移行する必要がありますか?
これに関するドキュメントが見つかりません。この一見単純な質問に対する答えもありません。現時点では、サポートがより成熟しているように見えるので、Python を選択したことを半分望みます。Go を選択したのは、最小限の調査で Go の方がパフォーマンスが優れていることが示唆されたため、API のようなコードに適していると思われるからです。
可能であれば、その方法を教えてください。
google-app-engine - Html フォームの POST 値は、localhost:8080 の場合は正常に抽出されましたが、AppSpot Golang にデプロイされた場合は空の文字列が抽出されました
2016.12.09 金
この単純な POST ハンドラーは、localhost:8080 で実行されているときにフォームの値を抽出します。[ 1 ]
ただし、AppSpot にデプロイすると、値は空の文字列になります。フォーム アクションを「GET」に変更すると、localhost:8080 と AppSpot にデプロイされた場合の両方で機能します。
r.PostFormValue("myValue") と r.FormValue("myValue") を試しましたが、どちらも "" を返します r.Method は "POST" を返します
フォーム要素に enctype="multipart/form-data" を追加してみました
調べてくれてありがとう、ロビン
2016.12.10(土)
続き:上記GAEfanより
試してください: r.ParseForm() myVal = r.Form["myValue"]
現在の形式の Html は ttps://validator.w3.org/ を検証しますが、時間をかけてより正式になり、提案どおりに「type」属性を追加しました。
問題は応答にあるようです。r.Body は、AppSpot にデプロイされると常に Nil です。フォーム値の抽出の前に「 defer r.Body.Close() 」を使用しても、AppSpot は常に「http: クローズされた Body の無効な読み取り」を返します。
ref: ttp://www.w3schools.com/tags/ref_httpmethods.asp 「クエリ文字列 (名前と値のペア) は、POST 要求の HTTP メッセージ本文で送信されることに注意してください:」
試してみました: ttps://cloud.google.com/appengine/docs/go/getting-started/handling-user-input-in-forms しかし、1 行のフォーム処理には複雑すぎます Content: r.FormValue("コンテンツ")
属性についての鋭い観察をありがとう。AppSpot の AppEngine は、どうやら localhost とは異なる方法で問題を処理しているようで、適切なチュートリアルをまだ見つけていません。
google-app-engine - Cloud Endpoints for Golang が GAE 標準環境にないのはなぜですか?
Google Cloud Endpoints for Go-lang が Google App Engine の標準環境にない理由を知っている人はいますか? Python / Java で公式にサポート/文書化されているようです。
からですか
A) Cloud Endpoints はまもなく / いつか Golang に登場します。
B) Cloud Endpoints はそれほど優れていないため、Golang で実装する予定はありません。
C) 他の何か。
この「非標準」ライブラリhttps://github.com/GoogleCloudPlatform/go-endpointsがありますが、9 か月間更新されていません。
GAE プロジェクトで Python と Golang のどちらかを選択しようとしていますが、Cloud Endpoints がサポートされていないため、一時停止しています。
前もって感謝します。