エンドポイントアプリケーションを構築しようとしていますが、Google AppEngineは初めてです。
私が理解しているように、SDKにはAPIをテスト/検証できるAPIエクスプローラーが含まれています。ドキュメントには「http://localhost:8080/_ah/api/Explorer
に移動してGoogleAPIエクスプローラーでAPIバックエンドをテストしてください」と書かれています。しかし、API Explorerが実際に何であるか、何をするか、またはどのように見えるかについてのドキュメントは見つかりません。
いずれにせよ、そのURLにアクセスしようとすると、すぐに https://developers.google.com/apis-Explorer/?base=http://localhost:8080/_ah/api# p / 、これは何も役に立たないことを教えてくれ、ある種のエラーであるに違いないようです。
Devappserverログには次のように書かれています。
INFO 2013-07-17 17:27:54,574 server.py:593] default: "GET /_ah/api/Explorer HTTP/1.1" 302 -
INFO 2013-07-17 17:27:56,099 server.py:593] default: "GET /_ah/api/static/proxy.html?jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.en.7JUwNUXMAS8.O%2Fm%3D__features__%2Fam%3DEQ%2Frt%3Dj%2Fd%3D1%2Frs%3DAItRSTO0dpKS_pssf5r3z87E6FlFvDGdOg HTTP/1.1" 200 1933
INFO 2013-07-17 17:27:56,193 server.py:593] default: "POST /_ah/spi/BackendService.getApiConfigs HTTP/1.1" 200 2342
INFO 2013-07-17 17:27:56,492 server.py:593] default: "GET /_ah/api/discovery/v1/apis HTTP/1.1" 200 576
INFO 2013-07-17 17:27:56,507 server.py:593] default: "POST /_ah/spi/BackendService.getApiConfigs HTTP/1.1" 200 2342
INFO 2013-07-17 17:27:56,583 server.py:593] default: "POST /_ah/spi/BackendService.getApiConfigs HTTP/1.1" 200 2342
INFO 2013-07-17 17:27:56,811 server.py:593] default: "GET /_ah/api/discovery/v1/apis HTTP/1.1" 200 576
INFO 2013-07-17 17:27:56,886 server.py:593] default: "GET /_ah/api/discovery/v1/apis/scrnxSync/v1/rest HTTP/1.1" 200 3365
それが価値があるものなら何でも。
これが私のapp.yamlです:
application: scrnx-cloud-1
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /admin/.*
script: admin.application
login: admin
secure: always
# Endpoints handler
- url: /_ah/spi/.*
script: sync_api.application
# catchall - must come last
- url: /.*
script: default.application
admin_console:
pages:
- name: View Measurement
url: /admin/measurement
libraries:
- name: jinja2
version: 2.6
- name: markupsafe
version: 0.15
builtins:
- admin_redirect: off
- appstats: off
- deferred: off
- remote_api: on
これを設定するために私がしていることになっている他の何かがありますか?
API ExplorerのURLは正しいですが、API ExplorerがAPIを正しくリストしないという問題がいくつかあります(明らかにすべてが解決されているわけではありません)。
どのように見えるかを比較すると、 https://developers.google.com/apis-Explorer/ はGoogleAPI用のAPIExplorerであり、通常自分でホストするよりもはるかに多くのAPIですが、表示される内容のアイデアを提供します。APIのリストと、クリックすると各APIの詳細が表示されます。
通常は機能する回避策は、APIの名前とバージョンをURLに明示的に追加することです。したがって、APIはバージョンv1
でscrnxSync
と呼ばれるため、このリンクには、定義したメソッドが表示されます。 API、およびそれらのメソッドを呼び出すことができます:
https://developers.google.com/apis-Explorer/?base=http://localhost:8080/_ah/api#p/scrnxSync/v1/
何かが変わったので、ローカルホスト開発サーバーでapi Explorerを使用するには、特定の方法でChromeを起動する必要があります
ここに リンク グーグルからの情報があります。
しかし、私にとっては、ローカルホスト開発サーバーでapiExplorerを使用しても修正されませんでした。
考えられる回避策は、フラグ「--allow-running-insecure-content」を指定してChromeを起動することです。
ターミナルのMacOでこれを実行します:
/ Applications/Google\Chrome.app/Contents/Mac/Google\Chrome --user-data-dir = test --allow-running-insecure-content
Chromeブラウザを使用している場合は、httpへのURLにhttpsを作成するだけです。これでうまくいきました。
http://apis-Explorer.appspot.com/apis-Explorer/?base=http://localhost:8080/_ah/api#p/
上記のすべてをchromeで試しましたが、何も機能しませんが、Firefoxを使用して、URLバーの左側にあるロックをクリックし、セキュリティを無効にします。これでうまくいきました。 、乾杯!!:D
簡単な修正:リンクを開きます: http://apis-Explorer.appspot.com/apis-Explorer/?base=http://localhost:8080/_ah/api#p/ in firefox 、次にナビゲーションバーの安全な接続アイコンをクリックし、[保護を無効にする]をクリックします。 APIが表示されるはずです
ps;ポート番号で8080を編集することを忘れないでください
まったく同じ問題ではないことはわかっていますが、「HTTPSではなくHTTP経由で記述または提供されるAPIを探索しています。これは安全ではなく、ブラウザによってブロックされる可能性があります。これを修正するには、 APIのTLSプロキシ。または、このサイトでHTTP経由のアクティブコンテンツを許可するようにブラウザに指示することもできます(Chromeでは、URLバーのシールドをクリックします)が、セキュリティが向上したり、このメッセージが表示されなくなったりすることはありません。」
Chromeのアドレスバーにある盾のアイコンをクリックしてくれました。
私もGAEエンドポイントを初めて使用しますが、同じ問題が発生しました。私の場合、app.yamlのRLハンドラーの順序が原因でこのエラーが発生しました。私はそれをこのように持っていました:
- url: /.*
script: core_service.application
# Endpoints handler
- url: /_ah/spi/.*
script: api_service.application
正しい方法は、最初に最も具体的なルートを定義し、最後に最も一般的なルート(/.*)を定義することです。このような:
# Endpoints handler
- url: /_ah/spi/.*
script: api_service.application
- url: /.*
script: core_service.application
GWT DevModeからAppEngineを実行している場合は、コンソールに表示されるものと一致するようにベースパラメーターのポートを変更する必要があります。私にとっては8888です。
http://apis-Explorer.appspot.com/apis-Explorer/?base=http://localhost:8888/_ah/api#p/
問題は、pythonファイルが次のインポートを見つけられないことです。
from protorpc import remote
したがって、ターミナルを使用し、GUIをスキップして、appengine sdkディレクトリに移動し、そこにプロジェクトを配置します。 Macの場合は次のとおりです。
/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/
私にとって、これはapp.yamlの非常に単純なタイプミスです。同じ問題が発生する場合は、次のように簡単に説明できます。
(正しい)の代わりに:
- url: /_ah/spi/.*
script: services.application
置いた:
- url: /_ah/api/.*
script: services.application
変化 api 戻る spi トリックをしました。
同じ問題が発生していましたが、ローカルホストで間違ったポートを指定していたことが判明しました。開発サーバーが起動すると、ログはローカルホスト上の3つの個別のポートを指定します。
INFO 2015-07-26 03:46:56,023 api_server.py:172]次の場所でAPIサーバーを起動しています:http:// localhost:35714
INFO 2015-07-26 03:46:56,027 dispatcher.py:186]開始モジュール「デフォルト」は次の場所で実行されています:http:// localhost:8080
INFO 2015-07-26 03:46:56,028 admin_server.py:118]管理サーバーを次の場所で開始しています:http:// localhost:8000
問題は、APIサーバーのポートを使用しようとしたが、デフォルトモジュールのポートを使用する必要があることでした。
これは機能します:http:// localhost:8080/_ah/api/Explorer(chromeでシールドをクリックし、URLが暗号化されていないため、安全でないスクリプトを許可する必要がありました)