API はリモート プロシージャ コール(RPC)サービスであり、外部クライアントからアクセス可能なリモート メソッドを提供します。各バックエンド API は、ProtoRPC remote.Service
クラスをサブクラス化する RPC サービスクラスと 1 つ以上のメソッドで構成されています。メソッドを定義するときは、そのメソッドに渡されるリクエストとそのメソッドが返すレスポンスの Message
クラスも定義する必要があります。Message
クラスはマッピング関数を使用して受信データを抽出し、サービス メソッドまたは送信レスポンスに適切に渡します。
リクエストにパスやクエリ文字列の引数がある場合は、単純な Message
クラスの代わりに ResourceContainer
クラスを使ってマッピングを行います。
最後に、API サービスクラスとクラスメソッドを修飾し、リクエストとレスポンスの Message
クラスを定義する必要があります。
API の作成
次の手順では、コードを修飾して、単一のクラスで実装する API を作成する方法を説明しています。マルチクラス API を使用する場合は、複数のクラスで実装される API の作成をご覧ください。使用可能なすべてのデコレータについて詳しくは、デコレータをご覧ください。
API を作成するには:
次のとおり必要なものをインポートします。
remote.Service
のサブクラスを定義し、それを@endpoints.api
で修飾します。API の名前とサービスクラスの名前が同じである必要はありません。バージョン番号は API のバージョンに適用されます。入力する値は、API への URL 内のパスの一部になります。バージョンの詳細については、API のバージョニングの処理をご覧ください。
メソッドがリクエストから受け取るデータとメソッドが返すデータを定義し、リクエスト本文とレスポンス本文で使用する
Message
クラスを作成します。GET
リクエストのように、リクエスト本文に引数がない場合は、リクエストのMessage
クラスを省略し、値message_types.VoidMessage
をそのまま使用できます。リクエストにパスやクエリ文字列の引数が含まれる場合は、
Message
クラスを適切なResourceContainer
に置き換えます。Message
クラスの作成と使用に関する詳細については、Google Protocol RPC レスポンスおよびリクエストのMessage
クラスに関するドキュメントをご覧ください。API のメソッドを作成し、それを
@endpoints.method
で修飾します。リクエストにパスやクエリ文字列のデータが含まれる場合は、リクエスト メッセージ型を適切な
ResourceContainer
に置き換えます。ウェブサーバーの作成で説明している手順に沿って、API を提供するコードを追加します。