先行入力 ホワイトラベル旅行プラットフォーム向けAPI
旅行者が検索している際に、提案を表示する
Typehead(GET /suggestions)は、地域、関連する場所、利用可能な宿泊施設に基づいて、旅行者に提案型の検索体験を提供できる新しいAPIエンドポイントです。このエンドポイントは、部分検索文字列およびユーザーが入力したリクエストパラメータに基づいて、候補の一覧を返します。アカウントに 先行入力 を追加するには、アカウントマネージャー までご連絡ください。
仕組み
先行入力APIは、言語予測ツールです。オートコンプリートやオートサジェストと呼ばれることもあります。検索ボックスに入力された一部の情報に基づいて、地域、場所、または物件のリストを返します。ユーザーが検索ボックスに入力すると、先行入力APIは、都市、地域、施設、または郵便番号の情報に基づいて、最大10件の結果を返し始めます。お客様は一覧から候補を選択して検索を開始することも、入力を続けて自動提案された結果を絞り込むこともできます。
たとえば、「Memp」で始まる検索を行うと、米国テネシー州メンフィスに関連する地区、駅、空港などがいくつか候補として表示され、その後に米国ミズ ーリ州メンフィスが表示されます。
開始ガイド
APIについて詳しく知りたい場合は、アカウントマネージャー、テクニカル アカウントマネージャー(TAM)、またはパートナー・ソリューション・マネージャー(PSM)にご連絡ください。彼らはアクセス承認を申請し、承認されれば、契約内容を修正して 先行入力 を追加することになります。お客様の組織で 先行入力 が有効化されると、TAMまたはPSMが必要な開発作業についてサポートいたします。
公開要件 :
- 認証には、不透明アクセストークンのプロセスを採用し、使用する必要があります。
>> 不透明アクセストークンの取得に関する詳細はこちら - アクセストークンは、そのトークンをリクエストしたのと同じサーキットIDまたはAPIキーでのみ使用できます。
- アクセストークンの有効期間は 25 分間です。
- 新しいアクセストークンのリクエストは、そのスケジュールに従って一貫して更新されるように設定し、更新頻度が高くなりすぎないようにしてください。
- 言語とリクエスト本文は必須のパラメータです。
>> ホワイトラベル旅行プラットフォームで対応している言語の一覧をご覧ください
認証とアクセス
バージョン3に登録済みのパートナー様は、APIエンドポイントを通じて 先行入力APIをリクエストすることができます。承認され次第、APIを正常にご利用いただくために必要な権限を持つ新しいプロフィールを作成いたします。
承認を設定する
先行入力APIの認証には、アクセスキーが必要です。認証ヘッダーを使用して、APIキーを指定し、EPSゲートウェイを呼び出してアクセスキーを取得します。次に、アクセスキーを認証ヘッダーとして渡し、Typeahead API エンドポイントを呼び出します。
例:APIキーをbase64形式でエンコードする
var api_key = postman.getEnvironmentVariable("api_key");
var shared_secret= postman.getEnvironmentVariable("shared_secret");
var base64Hash = CryptoJS.enc.Utf8.parse(api_key + ":" + shared_secret);
var base64 = CryptoJS.enc.Base64.stringify(base64Hash);
postman.setEnvironmentVariable("base64",base64);不透明なアクセストークンを取得する
先行入力APIを使用するには、不透明なアクセストークン(ユーザーやリソースに関する情報が一切含まれていないもの)が必要です。
サンプルリクエスト
POST – https://api.ean.com/identity/oauth2/v3/token
Header:
Key: ‘Authorization’
Value: ‘Basic {base64}’回答例
{
"access_token": "p1xy6rxahicQPUIX_Sq6a52yFnHXpX3ImaSX9sKiUI4:XM8qZiTr1HPDc8FgBE5HLvFTFdICuRFV0-l7gFWI-WU",
"token_type": "bearer",
"expires_in": 1800,
"scope": "demand-solutions.demand-api-wrappers-playground.all"
}オートコンプリートのリクエストを行う
リクエストヘッダーとクエリパラメータに、いくつかの必須情報を含める必要があります。レスポンスの堅牢性を高めるために、オプションのクエリパラメータを含めることもできます。
リクエストヘッダー
必須
Accept: クライアントが受け取りたい応答形式を指定します。この値は である必要がありますapplication/json。Accept-Encoding: クライアントが返信として受け取りたいレスポンスのエンコーディングを指定します。この値は である必要がありますgzip。User-Agent: お客様のリクエストに含まれるヘッダー文字列で、貴社の統合システムによって取得されたものです。アプリケーションを構築する場合は、User-Agentの値を.に設定する必要があります{app name}/{app version}。例えば、TravelNow/3.30.112などです。
クエリパラメータ
必須
language: レスポンスで使用する言語を、two-digitの言語コードと国コードをハイフンで区切ったペアのみを使用するBCP47形式のサブセットとして指定します。以下の説明に従い、ISO 639-1 alpha-2言語コードおよびISO 3166-1 alpha-2国コードのみを使用してください。 w3.org (例:language=en-US)。
>> 対応言語の一覧を表示するtext: 検索対象の入力文字列で、文字数は150文字までです(例:text=Springfie)。feature: 提案結果の算出方法を変更します。値には、hierarchy、nearby_airport、およびpostal_codeが含まれます。line_of_business: このパラメータは検索のヒューリスティックを提供するものであり、有効な値を指定することで、より関連性の高い検索結果が得られます。利用可能なオプションについては、以下の「許可される値」の表をご参照ください。
省略可
type: ユーザーが探している場所について説明しています。このパラメータは、異なる値を指定して複数回指定することができます(例:type=AIRPORT&type=CITY)。指定がない場合、デフォルト値はairport、city、multi_city_vicinity、neighborhood、point_of_interest、およびairport_metro_codeとなります。詳細については、以下の「許可される値」の表をご覧ください。region_id: 指定された地域を持つ物件に結果を絞り込みます。origin: クエリテキストが宛先ではなく発信元であるかどうかを指定します。デフォルトの検索では、目的地のみが検索結果に表示されます。package_type: ユーザーが指定したパッケージの種類で絞り込みを行います。利用可能なオプションについては、以下の「許可される値」の表をご参照ください。limit: レスポンスで返される候補の最大数を指定します。この値は1から10の間でなければなりません(例:limit=5)。このパラメータが指定されていない場合、デフォルト値は10となります。
許容値
| type | line_of_business | package_type |
|---|---|---|
airport | properties (デフォルト) | flight_property |
city | flights | flight_property_car |
multi_city_vicinity | packages | flight_car |
neighborhood | cars | property_car |
point_of_interest | activities | |
airport_metro_code | ||
multi_region | ||
train_station | ||
metro_station | ||
address | ||
property | ||
bus_station |
上記の表に記載されていない値を入力すると、エラーが発生します。
データのご請求
access_tokenを入手したら、GET のリクエストを設定します。
サンプルリクエスト
GET - https://api.ean.com/v3/suggestions?language=en-US&line_of_business=properties&limit=3&text=chicago&type=city&type=neighborhood
Header :
Authorization: Bearer {{access_token}}回答例
[
{
"related_id": "4477519",
"type": "airport",
"name": "Chicago, IL (ORD-O'Hare Intl.)",
"name_full": "Chicago, IL, United States of America (ORD-O'Hare Intl.)",
"name_display": "<B>Chicago</B>, IL, United States of America (ORD-O'Hare Intl.)",
"country_code": "US",
"country_code_3": "USA",
"iata_airport_code": "ORD",
"iata_airport_metro_code": "CHI",
"coordinates": {
"latitude": 41.976977,
"longitude": -87.90481
}
},
{
"related_id": "829",
"type": "city",
"name": "Chicago",
"name_full": "Chicago, Illinois, United States of America",
"name_display": "<B>Chicago</B>, Illinois, United States of America",
"country_code": "US",
"country_code_3": "USA",
"iata_airport_code": "CHI",
"iata_airport_metro_code": "CHI",
"coordinates": {
"latitude": 41.878113,
"longitude": -87.629799
}
},
{
"related_id": "6350699",
"type": "neighborhood",
"name": "Downtown Chicago",
"name_full": "Downtown Chicago, Chicago, Illinois, United States of America",
"name_display": "Downtown <B>Chicago</B>, <B>Chicago</B>, Illinois, United States of America",
"country_code": "US",
"country_code_3": "USA",
"iata_airport_code": "CHI",
"iata_airport_metro_code": "CHI",
"coordinates": {
"latitude": 41.885969845574834,
"longitude": -87.62933540465228
}
}
]API の詳細
このページで関連エンドポイント定義を調べてから、API Explorer または別のテストソフトウェアを使用して、例とスキーマ定義が実際の出力とどのように比較されるかを理解します。