料金と空席状況の情報を統合するには、パートナー様は Partner API を実装する必要があります。このインターフェースは REST に基づいており、Google は HTTP 経由でライブ呼び出しを行うことができます。個々の API メソッドの詳細については リファレンス セクションで説明しますが、横断的な懸念事項については 後述します。
リクエストとレスポンスの形式
最初は JSON 形式のみがサポートされます。リクエストまたはレスポンスの形式を追加する必要がある場合は、Travel Transport チーム(transport-help@google.com)にお問い合わせのうえ、ユースケースについてご相談ください。
リクエストは HTTP メソッド POST を使用して送信され、リクエスト メッセージは POST 本文に含められます。
構造をわかりやすくするため、API インターフェースのドキュメントは プロトコル バッファ メッセージ定義として提供されます。プロトコル バッファ メッセージ定義から JSON オブジェクトへの変換は、正規の JSON マッピングで定義されます。このマッピングでは、 オプション として [デフォルト値を持つフィールドを出力する] オプションと [lowerCamelCase 名の代わりに proto フィールド名を使用する] オプションが使用されます。
認証
Google は、HTTP ダイジェスト認証、OAuth 2.0、クライアント証明書 認証をサポートしています(パートナー 構成をご覧ください)。 パートナー様は、API テスト時に Google に適切な認証情報を提供する必要があります。
- ダイジェストの場合: ユーザー名とパスワード。
- OAuth 2.0 の場合: client_id と client_secret。
- 証明書の場合: SSL クライアント証明書。
ステータス コードとエラー処理
一般に、HTTP レスポンスで返されるステータス コードは以下のとおりです。
| HTTP Code | HTTP の説明 | メモ |
|---|---|---|
| 2xx | OK | エラーではありません。成功したときに返されます。レスポンスの本文には、エラー レスポンスではなく、成功した結果(TripOptionsResult など)が含まれている必要があります。 not an |
| 400 | 不正なリクエスト | 受信したリクエストが無効でした。メソッド固有のエラー レスポンス を使用して、レスポンスの本文に追加のエラーの詳細を返す必要があります。HTTP 400 は、Google が技術的なエラー (リクエスト内のフィールド名の誤りなど)を発生させた場合にのみ使用する必要があります。 |
| 403 | 禁止動作 | アクセスが拒否されたか、禁止されています(呼び出し元は既知であり、拒否されています)。この レスポンスは、リソースの枯渇を原因とする拒 101}否には使用できません(このようなエラーにはリクエストが多すぎますを使用します)。呼び出し元が特定できない場合は、禁止動作 を使用しないでください(このようなエラーには代わりに認証されていません を使用します)。 |
| 404 | 見つかりませんでした | リクエストされたリソースは見つかりませんでした。 メソッド固有のエラー レスポンスを使用して、レスポンスの本文に追加のエラーの詳細を返す必要があります。 |
| 429 | リクエストが多すぎます | ユーザーごとの割り当てなど、一部のリソースが枯渇しています。 |
| 500 | 内部サーバー エラー | 内部エラー。これは、基盤となるシステムで予期される一部の不変条件が満たされていないことを意味します。このエラーコードは 深刻なエラーのために予約されており、パートナーの API サーバー 実装のバグを示しています。 |
| 503 | サービスを利用できません | サービスを利用できません。これは、バックオフで再試行することで解決できる可能性が高い一時的な 状態です。 |
| 504 | ゲートウェイのタイムアウト | オペレーションが完了する前に期限が切れました。システムの状態を変更するオペレーションの場合、オペレーションが正常に終了しても、このエラーが返されることがあります。たとえば、 サーバーからの正常なレスポンスが期限切れになるほど遅延する場合もあります。 |
すべての前提条件、無効な引数、または見つからないエラーについては、次の点に注意してください。
- API で定義されているメソッド固有のレスポンスまたはエラー メッセージを使用する必要があります。
- メソッド固有の
コードで指定されている正しい http コードを使用する必要があります(
TripOptionsErrorTypeなど)。
これにより、これらのタイプのエラーに関する詳細情報を提供できます。この情報は、次の目的で使用できます。
- エラーを再試行できるかどうかを判断する
SEGMENT_KEY_NOT_FOUNDは再試行できません。
- 古い情報を修正する
Unavailable.Reason.CANCELEDは、旅行を削除する必要があることを示します(これは成功したレスポンスの一部です)。Unavailable.Reason.TEMPORARILY_UNAVAILABLEとエラーコードSEGMENT_KEY_NOT_FOUND、SUBOPTIMAL_ITINERARY、BOOKING_WINDOW_NOT_SUPPORTED、TICKETING_PROHIBITEDは、以前にキャッシュから受信した価格をすべて削除します。
- ユーザーに関連性の高いガイダンスを提供する
TripOptionsError
に記載されているメソッド固有のエラーの現在のリストは、出発点です。追加のエラータイプが必要な場合は、Google Travel Transport チームにお問い合わせください。
QPS(秒間クエリ数)
Google から送信される QPS のレベルは、パートナーの在庫と、キャッシュされたデータを表示するユーザー数、または予約のためにパートナーのウェブサイトをクリックするユーザー数によって異なる可能性があります。
レイテンシ
リクエストは 10 秒後にタイムアウトします。ベータ版パートナー統合のレイテンシに関する追加のガイドラインはありません。ただし、レイテンシに関する追加の SLO は、パートナー データ品質ガイドラインで定義されます。
通貨、税金、手数料
Google に送信されるすべての価格には、すべての税金と手数料が含まれており、サポートされている通貨で指定する必要があります。
通貨
価格の通貨は currency_code
フィールドを使用して指定します。このフィールドには、有効な
ISO 4217 通貨コードを指定する必要があります。
例:10.25 USD
{
"price": {
"currency_code": "USD",
"units": 10,
"nanos": 250000000
}
}
税と手数料
提供する価格は、ユーザーが支払う最終的な合計金額でなければなりません。これには、すべての税金(VAT など)と追加の手数料(予約手数料や支払いカード手数料など)が含まれます。オプションの運賃の内訳は、繰り返し可能な line_items フィールドを使用して追加できます。Google は、合計金額とオプションの運賃の内訳をユーザーに表示します。