web-dev-qa-db-ja.com

ローカルホストのAPIエクスプローラーにアクセスできません

エンドポイントアプリケーションを構築しようとしていますが、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

これを設定するために私がしていることになっている他の何かがありますか?

17
c roald

API ExplorerのURLは正しいですが、API ExplorerがAPIを正しくリストしないという問題がいくつかあります(明らかにすべてが解決されているわけではありません)。

どのように見えるかを比較すると、 https://developers.google.com/apis-Explorer/ はGoogleAPI用のAPIExplorerであり、通常自分でホストするよりもはるかに多くのAPIですが、表示される内容のアイデアを提供します。APIのリストと、クリックすると各APIの詳細が表示されます。

通常は機能する回避策は、APIの名前とバージョンをURLに明示的に追加することです。したがって、APIはバージョンv1scrnxSyncと呼ばれるため、このリンクには、定義したメソッドが表示されます。 API、およびそれらのメソッドを呼び出すことができます:

https://developers.google.com/apis-Explorer/?base=http://localhost:8080/_ah/api#p/scrnxSync/v1/

4
Scarygami

何かが変わったので、ローカルホスト開発サーバーで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

8
Przemek Lada

Chromeブラウザを使用している場合は、httpへのURLにhttpsを作成するだけです。これでうまくいきました。

http://apis-Explorer.appspot.com/apis-Explorer/?base=http://localhost:8080/_ah/api#p/

7
A Paracha

上記のすべてをchromeで試しましたが、何も機能しませんが、Firefoxを使用して、URLバーの左側にあるロックをクリックし、セキュリティを無効にします。これでうまくいきました。 、乾杯!!:D

4
Andrés Muñoz

簡単な修正:リンクを開きます: http://apis-Explorer.appspot.com/apis-Explorer/?base=http://localhost:8080/_ah/api#p/ in firefox 、次にナビゲーションバーの安全な接続アイコンをクリックし、[保護を無効にする]をクリックします。 APIが表示されるはずです

ps;ポート番号で8080を編集することを忘れないでください

3
Jasper Kinoti

まったく同じ問題ではないことはわかっていますが、「HTTPSではなくHTTP経由で記述または提供されるAPIを探索しています。これは安全ではなく、ブラウザによってブロックされる可能性があります。これを修正するには、 APIのTLSプロキシ。または、このサイトでHTTP経由のアクティブコンテンツを許可するようにブラウザに指示することもできます(Chromeでは、URLバーのシールドをクリックします)が、セキュリティが向上したり、このメッセージが表示されなくなったりすることはありません。」

Chromeのアドレスバーにある盾のアイコンをクリックしてくれました。

2
Maxime T

私も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
2
juanesarango

GWT DevModeからAppEngineを実行している場合は、コンソールに表示されるものと一致するようにベースパラメーターのポートを変更する必要があります。私にとっては8888です。

http://apis-Explorer.appspot.com/apis-Explorer/?base=http://localhost:8888/_ah/api#p/

1

問題は、pythonファイルが次のインポートを見つけられないことです。

from protorpc import remote

したがって、ターミナルを使用し、GUIをスキップして、appengine sdkディレクトリに移動し、そこにプロジェクトを配置します。 Macの場合は次のとおりです。

/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/
0
Paul Moffett

私にとって、これはapp.yamlの非常に単純なタイプミスです。同じ問題が発生する場合は、次のように簡単に説明できます。

(正しい)の代わりに:

- url: /_ah/spi/.*
  script: services.application

置いた:

- url: /_ah/api/.*
  script: services.application

変化 api 戻る spi トリックをしました。

0
Nathan Do

同じ問題が発生していましたが、ローカルホストで間違ったポートを指定していたことが判明しました。開発サーバーが起動すると、ログはローカルホスト上の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が暗号化されていないため、安全でないスクリプトを許可する必要がありました)

0
Vaughn