ボラタイル レイヤーからデータを取得します
ボラタイル レイヤーからデータを取得するには、レイヤーのすべてのパーティションを取得するか、特定の時間枠で変更された特定のパーティションについてレイヤーを照会します。
注
ボラタイル レイヤーからデータを取得するためにblob
v1
API を使用することは推奨されていません。volatile-blob
v1
データを取得するための一般的なフローは、次の手順で構成されています。
- 認可トークンを取得します
- API ベースの URL を取得します
- データ ハンドルを入手してください
- パーティション データを入手します
認可トークン を取得します
HTTP 要求の認可トークンを取得します。 手順について は、『 Identity & Access Management Guide 』を参照してください。
API ベースの URL を取得します
API ルックアップサービスを使用して、データを取得するカタログの API の API エンドポイントを取得します。 手順については 、『 API Lookup 開発者ガイド』を参照してください。
データ ハンドル を入手してください
レイヤーからデータを取得するには、目的のデータが含まれているパーティションのデータ ハンドルを把握している必要があります。 データ ハンドルの取得方法は、取得するデータによって異なります。
注
ご希望のパーティションのデータ ハンドルがすでにわかっている場合があります。 その場合は、この手順をスキップします。 たとえば、データを取得するレイヤーが HERE Tile Partitioning を使用し、データ ハンドルが HERE Tile ID の場合、必要なタイルのパーティション ID がすでにわかっている可能性があります。 この ID を使用すると、 ID を検索せずにデータを取得できます。 また、メタデータ応答から結果をキャッシュすることで、データ ハンドルを検索する必要がなくなります。 新しいパーティションが追加された場合、または既存のパーティションが削除された場合は、レイヤーのメタデータを再度読み取る必要があります。
レイヤー内のすべてのパーティションを取得するには metadata
、 API を使用してレイヤーからパーティション メタデータを取得します。
GET /<Base path for the metadata API from the API Lookup Service>/layers/<Layer ID>/partitions HTTP/1.1
Host: <Hostname for the metadata API from the API Lookup Service>
Authorization: Bearer <Authorization Token>
Cache-Control: no-cache
変更されたすべてのパーティションを取得するに は、metadata
API を使用し、sinceTime
パラメータを使用して時間範囲を指定します。
GET /<Base path for the metadata API from the API Lookup Service>/layers/<Layer ID>/changes?sinceTime=<Epoch Seconds> HTTP/1.1
Host: <Hostname for the metadata API from the API Lookup Service>
Authorization: Bearer <Authorization Token>
Cache-Control: no-cache
提供された時間以降にパーティションのメタデータが変更され、そのデータがまだ変更されていない場合、そのパーティションは応答に含まれません。
変更された場合にのみパーティションを取得するに は、query
API を使用してpartition
およびsinceTime
のパラメータを指定します。
GET /<Base path for the query API from the API Lookup Service>/layers/<Layer ID>/changes?partition=<Partition ID>&sinceTime=<Epoch Seconds> HTTP/1.1
Host: <Hostname for the metadata API from the API Lookup Service>
Authorization: Bearer <Authorization Token>
Cache-Control: no-cache
変更 されたデータを含むパーティションのみ が含まれます。 パーティションのメタデータが変更され、そのデータがまだ変更されていない場合、そのパーティションは応答に含まれません。
レスポンス
これらの各クエリーに対する応答には、各パーティションのデータ ハンドルを含むパーティション メタデータの配列が含まれています。 例 :
{
"partitions": [
{
"dataHandle": "1b2ca68f-d4a0-4379-8120-cd025640510c",
"layer": "my-layer",
"partition": "314010583",
"partitionType": "reference",
"version": 0
}
]
}
パーティション データ を入手します
metadata
API によって返されたパーティション メタデータで、目的のパーティションのデータ ハンドルを探します。 次に、データ ハンドルを使用し volatile-blob
て API を使用してデータを取得します。
GET /<Base path for the volatile-blob API from the API Lookup Service>/layers/<Layer ID>/data/<Data Handle> HTTP/1.1
Host: <Hostname for the volatile-blob API from the API Lookup Service>
Authorization: Bearer <Authorization Token>
Cache-Control: no-cache
応答は、指定されたデータ ハンドルに最近アップロードされたバイナリデータで構成されます。 データ ハンドルに保存されているデータは揮発性なので、コール間で変更される可能性があります。
注
HTTP 5xx エラーを処理するための再試行ロジックがアプリケーションに含まれていることを推奨します。 再試行ロジックで指数バックオフを使用します。