google.appengine.ext.remote_api.handler モジュール

概要

HTTP 経由でさまざまな App Engine サービスをエクスポートするハンドラ。

アプリでは、このハンドラを builtins セクションに追加することによってエクスポートできます。

builtins: - remote_api: on

この場合、remote_api サービスがパス /_ah/remote_api に追加されます。

次のように、handlers セクションに追加することもできます。

handlers: - url: /remote_api(/.*)?

script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py

このハンドラによってエクスポートされたサービスにリモートからアクセスするには、remote_api_stub を使用します。その方法の詳細については、remote_api_stub.py のドキュメントをご覧ください。

ハンドラでは複数の認証形式がサポートされています。デフォルトでは、Users API を使用してユーザーが管理者かどうかがチェックされます(app.yaml ファイルに「login: admin」と指定する場合と同じです)。「カスタム ヘッダー」モードもサポートされており、一部のシナリオで使用できます。

カスタム ヘッダー モードを構成するには、appengine_config ファイル(appstats の構成に使用するファイルと同じもの)を編集して、次のような行を追加します。

remoteapi_CUSTOM_ENVIRONMENT_AUTHENTICATION = (

‘HTTP_X_APPENGINE_INBOUND_APPID’, [‘otherappid’] )

使用可能な全オプションについては、以下の ConfigDefaults クラスをご覧ください。

内容

class google.appengine.ext.remote_api.handler.ApiCallHandlerソース

ベース: google.appengine.ext.webapp._webapp25.RequestHandler

HTTP 経由で API 呼び出しを受け入れ、それらを実行する webapp ハンドラ。

CheckIsAdmin()ソース
ExecuteRequest(request)ソース

API 呼び出しを実行し、レスポンス オブジェクトを返します。

InfoPage()ソース

情報ページをレンダリングします。

LOCAL_STUBS = {'remote_datastore': <google.appengine.ext.remote_api.handler.RemoteDatastoreStub object>}
OAUTH_SCOPES = ['https://www.googleapis.com/auth/appengine.apis', 'https://www.googleapis.com/auth/cloud-platform']
get()ソース

GET を処理し、単に情報ページを表示します。

post()ソース

API 呼び出しを実行して POST リクエストを処理します。

class google.appengine.ext.remote_api.handler.ConfigDefaultsソース

ベース: object

構成可能な定数。

remote_api の構成値をオーバーライドするには、appengine_config.py ファイル(アプリのルート内)で次のような値を定義します。

remoteapi_CUSTOM_ENVIRONMENT_AUTHENTICATION = (

‘HTTP_X_APPENGINE_INBOUND_APPID’, [‘otherappid’] )

このファイルは sample_appengine_config.py をベースに作成することをおすすめします。

CUSTOM_ENVIRONMENT_AUTHENTICATION = ()
class google.appengine.ext.remote_api.handler.RemoteDatastoreStub(service='datastore_v3', _test_stub_map=None)ソース

ベース: google.appengine.api.apiproxy_stub.APIProxyStub

ステートフルなデータストア クエリの実行を許可するスタブを提供します。

一部のオペレーションは標準インターフェースでは実行できません。特に、データストアの RunQuery オペレーションではカーソルが内部的に保存され、後続の呼び出しでそのカーソルが参照されて、各リクエストの最後にクリーンアップされます。ApiCallHandler の各呼び出しはそれぞれのリクエストで行われるため、これが不可能になります。

この問題に対応するために、RemoteDatastoreStub には独自の RunQuery が実装されており、その RunQuery によって即座にクエリ結果が返されるようになっています。

google.appengine.ext.remote_api.handler.main()ソース
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Python の App Engine スタンダード環境