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 を提供するコードを追加します。