[ 概要 ]
AirHost API を利用して在庫・料金情報を取得することで自社ブッキングエンジン(予約サイト)を開発する場合の実装手順を説明します。
[ 詳細 ]
実装イメージ
AirHost API から取得した在庫・料金データは、必ず社内システムのデータベース内にコピーを保持するように設計して下さい。 都度 API 経由でリアルタイムデータを取得するような実装は出来ません。
処理手順
初期データ取得
GET /properties をコールして、全施設の情報を取得して、ローカル DB 内にコピーを保持します。
GET /availabilities をコールして、各ルームタイプ・料金プラン毎の在庫・料金の情報を取得して、ローカル DB 内にコピーを保持します。
最新データの維持
ローカル DB 内に保持した施設・予約情報を最新の状態に保つため、Push Webhook (POST /webhooks) コールを受け取り、availabilities.update Event の在庫・料金の更新内容をローカル DB に反映します。 URL を登録する必要があるので、実装・テスト実施時に AirHost の開発チームにお知らせください。
フルスキャン
1日一回程度、GET /availabilities で最新の在庫・料金情報を取得することでデータの一貫性を保証することが出来ます。
ブッキングエンジン(予約サイト)への情報の表示
自社予約サイト内での施設情報の表示や予約カレンダーへの在庫・料金情報の表示は、すべてローカル DB 内にあるデータを利用して処理を行うようにして下さい。 都度 AirHost API をコールするような設計にすると、アクセス制限で動作しなくなります。
予約データの作成
POST /stays をコールすることで、予約サイト内で確定した予約を API 経由で AirHost 側に登録することが出来ます。
POST /stays 経由で作成した予約情報に関しては、PUT /room_reservations/{id} から更新することも可能です。 ※ OTA 予約など他の予約は更新出来ません。
API ドキュメントと利用可能なエンドポイント
API ドキュメント:https://airhost.stoplight.io/docs/airhost-public-api-doc/branches/japanese/b8pf0iy7p7mrw-
※「ブッキングエンジン用 API」パッケージで利用可能な API は、以下のみになります。
GET /properties
GET /availabilities
POST /webhooks (availabilities.update Event のみ)
POST /stays
PUT /room_reservations/{id} (POST /stays で作成した予約のみ対象)
GET /stays (POST /stays で作成した予約のみ対象)