-
HTTP 要求の認可トークンを取得します。
認可トークンの取得方法については、次の URL を参照してください。
『 ID およびアクセス管理ガイド』を参照してください
-
公開先のカタログのpublish
および blob
API の API ベースの URL を取得します。
API ベースの URL を取得するには、 API ルックアップサービスを使用します。 手順については、以下を参照してください。
API 検索開発者ガイド
-
パブリケーションを初期化します。
パブリケーションを初期化するには、公開先のレイヤーを指定します。 パブリケーションが初期化されると、パブリケーショントークンが届き publish
ます。このメタデータを使用して、 API を使用して をパブリッシュし、新しく初期化したパブリケーションについての情報を取得します。
パブリケーションを初期化するには publish
、 API を使用します。
POST /<Base path for the publish API from the API Lookup Service>/publications HTTP/1.1
Host: <Hostname for the publish API from the API Lookup Service>
Authorization: Bearer <Authorization Token>
Content-Type: application/json
Cache-Control: no-cache
{
"layerIds": [
"<Layer to Publish To>"
]
}
応答に はパブリケーション ID が含まれます。 例 :
{
"id": "abc1234567-xy90-11aa-abc123-abc123456789",
...
}
注
publish
API では、バージョン管理されたレイヤーで一度に 1 つのアクティブなパブリケーションのみがサポートされます。 別の発行者がアクティブに発行しているときにパブリケーションを初期化すると、アクティブなパブリケーションがキャンセルされます。 既存のパブリケーションが送信されたがまだ完了していない場合は、初期化しようとすると 409 Conflict エラーが発生します。
-
データ ハンドルを生成します。
blob
API を使用してデータをアップロードするには、データの一意の識別子を生成する必要があります。 これは データ ハンドルと呼ばれます。
データ ハンドルを生成する場合は、次の点に注意してください。
- データ ハンドルは任意のものを選択できますが、すべてのバージョンでレイヤー内で一意である必要があります。
- データ ハンドルには、任意の一意の番号、またはコンテンツまたはメタデータのハッシュを指定できます。
- データ ハンドルを使用してデータをアップロードした後は、データ ハンドルを再利用できません。
- データ ハンドルがすでに使用されているためにデータのアップロードに失敗した場合は、再試行ロジックでアップロード用の新しいデータ ハンドルを生成する必要があります。
データ ハンドルの競合を管理するロジックを作成する必要があります。 たとえば、処理を再開して既存のデータ ハンドルにデータを再アップロードしようとすると、エラーが発生し、アップロードが失敗します。
blob
API を使用して、データ ハンドルがすでに存在するかどうかを確認できます。
HEAD /<Base path for the blob API from the API Lookup Service>/layers/<Layer ID>/data/<Data Handle> HTTP/1.1
Host: <Hostname for the blob API from the API Lookup Service>
Authorization: Bearer <Authorization Token>
Cache-Control: no-cache
応答が成功すると、指定したデータ ハンドルが存在します。
blob
API を使用して、マルチパートアップロードの初期化、データパートのアップロード、およびマルチパートアップロードの完了によって生成したデータ ハンドルを使用してデータをアップロードできるようになりました。
-
データ ハンドルのマルチパートアップロードを初期化します。
データ ハンドルのマルチパートアップロードを初期化するには、次のリクエストを使用します。
POST /<Base path for the blob API from the API Lookup Service>/layers/<Layer ID>/data/<Data Handle>/multiparts HTTP/1.1
Host: <Hostname for the blob API from the API Lookup Service>
Authorization: Bearer <Authorization Token>
Content-Type: application/json
Cache-Control: no-cache
{
"contentType": "application/octet-stream"
}
応答には、アップロードを管理するための URL が含まれています。
{
"links": {
"uploadPart": {
"href": "https://blobstore.data.api.platform.here.com/blobstore/v1/catalogs/documentation-test/layers/versioned-layer-1/data/DataHandleA/multiparts/eyJvYmplY3RJZCI6ImVyaWtzSGFuZGxlQSIsImNvbnRlbnRUeXBlIjoiYXBwbGljYXRpb24vanNvbiIsInVwbG9hZElkIjoiZS42eXhqRGdkSEttMlVvcThFYUZGUUk0V2tyV01naFNrcVJiaGc5ZFp4eEVWY1pFUVBZdDBMeXlLQ1NRS1BUcHlwWGg4eEVoTlBFbnJLYnptTnRmbWVUdnJpY1plZi45M2VybWU3S2NwZHJiT2lyQjdTS1Bod2FUSTg5ZmpRNHoifQ=/parts",
"method": "POST"
},
"complete": {
"href": "https://blobstore.data.api.platform.here.com/blobstore/v1/catalogs/documentation-test/layers/versioned-layer-1/data/DataHandleA/multiparts/eyJvYmplY3RJZCI6ImVyaWtzSGFuZGxlQSIsImNvbnRlbnRUeXBlIjoiYXBwbGljYXRpb24vanNvbiIsInVwbG9hZElkIjoiZS42eXhqRGdkSEttMlVvcThFYUZGUUk0V2tyV01naFNrcVJiaGc5ZFp4eEVWY1pFUVBZdDBMeXlLQ1NRS1BUcHlwWGg4eEVoTlBFbnJLYnptTnRmbWVUdnJpY1plZi45M2VybWU3S2NwZHJiT2lyQjdTS1Bod2FUSTg5ZmpRNHoifQ=",
"method": "PUT"
},
"status": {
"href": "https://blobstore.data.api.platform.here.com/blobstore/v1/catalogs/documentation-test/layers/versioned-layer-1/data/DataHandleA/multiparts/eyJvYmplY3RJZCI6ImVyaWtzSGFuZGxlQSIsImNvbnRlbnRUeXBlIjoiYXBwbGljYXRpb24vanNvbiIsInVwbG9hZElkIjoiZS42eXhqRGdkSEttMlVvcThFYUZGUUk0V2tyV01naFNrcVJiaGc5ZFp4eEVWY1pFUVBZdDBMeXlLQ1NRS1BUcHlwWGg4eEVoTlBFbnJLYnptTnRmbWVUdnJpY1plZi45M2VybWU3S2NwZHJiT2lyQjdTS1Bod2FUSTg5ZmpRNHoifQ=",
"method": "GET"
},
"delete": {
"href": "https://blobstore.data.api.platform.here.com/blobstore/v1/catalogs/documentation-test/layers/versioned-layer-1/data/DataHandleA/multiparts/eyJvYmplY3RJZCI6ImVyaWtzSGFuZGxlQSIsImNvbnRlbnRUeXBlIjoiYXBwbGljYXRpb24vanNvbiIsInVwbG9hZElkIjoiZS42eXhqRGdkSEttMlVvcThFYUZGUUk0V2tyV01naFNrcVJiaGc5ZFp4eEVWY1pFUVBZdDBMeXlLQ1NRS1BUcHlwWGg4eEVoTlBFbnJLYnptTnRmbWVUdnJpY1plZi45M2VybWU3S2NwZHJiT2lyQjdTS1Bod2FUSTg5ZmpRNHoifQ=",
"method": "DELETE"
}
}
}
-
データパーツをアップロードします。
マルチパートのアップロードを初期化したので uploadPart
、前のステップで指定した POST メソッドの URL を使用してデータをアップロードできます。この名前はです。
50 MB を超えるデータをアップロードする場合は、データをパーツに分割し、各パーツを個別にアップロードする必要があります。 各パーツの最小サイズは 5 MB ですが、最小サイズではない最後のパーツは除きます。 部品内の最大データ量は 5 GB です。 また、クエリ パラメーターでパーツ番号を入力する必要が partNumber
あります。パーツ番号は後でデータを再構成するために使用されます。
50 MB 未満のデータをアップロードする場合は、データを 1 つのパートにアップロードできますが、最小サイズはありません。
POST <Path for uploadPart from prior step> HTTP/1.1
Host: <Hostname for uploadPart from prior step>
Authorization: Bearer <Authorization Token>
Content-Type: application/octet-stream
Cache-Control: no-cache
<Data to Upload>
応答には 、 アップロードしたパーツの ID である etag ヘッダーが含まれています。 マルチパートのアップロードを完了するために必要に応じて、これらを収集し、関連付けられている部品番号と関連付けます。
注
HTTP 5xx エラーを処理するための再試行ロジックがアプリケーションに含まれていることを推奨します。 再試行ロジックで指数バックオフを使用します。
-
マルチパートのアップロードを完了します。
複数パーツのアップロードを完了するには、この complete
リクエストを作成するために指定された URL を使用して、アップロードされたすべてのパーツのタグとパーツ番号を入力します。
PUT <Path for complete from prior step> HTTP/1.1
Host: <Hostname for complete from prior step>
Authorization: Bearer <Authorization Token>
Content-Type: application/json
Cache-Control: no-cache
{
"parts": [
{
"etag": "yJvYmplY3RJZCI6ImVyaWtzSGFuZGxlQSIsImNvbnRlbnRUeXBlIjoiYXBwbGlj"
"number": 1
},
{
"etag": "1h2h3k4j5h6ZCI6ImVyaWtzSGFuZGxlQadjiwo234ADF2323k34H5heoH543Hr"
"number": 2
}
]
}
-
ステータスを待ちます。
このリクエストを作成するには、 URL Named status
completed
を受信するか、またはsuccess
使用するまで、アップロードのステータスをポーリングする必要があります。
GET <Path for status from prior step> HTTP/1.1
Host: <Hostname for status from prior step>
Authorization: Bearer <Authorization Token>
Cache-Control: no-cache
-
メタデータを生成します。
すべてのデータパーツがアップロードされたら、 HERE platform 内のデータを表すために使用されるメタデータを生成する必要があります。 少なくとも、メタデータはパーティション ID とデータのアップロードに使用したデータ ハンドルで構成されている必要があります。 設定できるフィールドの詳細な説明については publish
、『 API リファレンス for the API 』を参照してください。
API レファレンス (英語)
メタデータを生成したら、すべてのデータがアップロードされ、すべてのメタデータが生成されたら、次のステップに進み、メタデータをアップロードできるように、どこかに集約します。
-
メタデータをアップロードします。
メタデータをアップロードするには publish
、 API を使用します。 例 :
POST /<Base path for the publish API from the API Lookup Service>/layers/<Layer ID>/publications/<Publication Id>/partitions HTTP/1.1
Host: <Hostname for the publish API from the API Lookup Service>
Authorization: Bearer <Authorization Token>
Content-Type: application/json
Cache-Control: no-cache
{
"partitions": [
{
"compressedDataSize": 0,
"dataHandle": "DataHandleA",
"dataSize": 0,
"partition": "partition01"
}
]
}
注
1 つのリクエストでアップロードおよび公開できるパーティションの最大数は 1,000 です。 1,000 を超えるパーティションをアップロードする場合は、最初の 1,000 個のパーティションのデータをアップロードしてから、 1,000 個のパーティションのメタデータをアップロードします。 次に、次のパーティションのセットに進みます。 すべてのデータがアップロードされるまで待ってからメタデータをアップロードしないでください。 パフォーマンスが低下する可能性があります。 代わりに、データをアップロードしてからメタデータを実行し、必要に応じてすべてのデータと対応するメタデータがアップロードされるまで繰り返します。
-
メタデータを削除します
メタデータを削除するに publish
は、 API を使用してメタデータを公開する場合と同じ手順を実行しますが、削除するパーティションの空のデータハンドルを送信するだけです。 例 :
POST /<Base path for the publish API from the API Lookup Service>/layers/<Layer ID>/publications/<Publication Id>/partitions HTTP/1.1
Host: <Hostname for the publish API from the API Lookup Service>
Authorization: Bearer <Authorization Token>
Content-Type: application/json
Cache-Control: no-cache
{
"partitions": [
{
"partition": "partition01"
"dataHandle": ""
}
]
}
パーティションは、 1 つのパブリケーションで削除および追加できます。
-
パブリケーションを送信します。
パブリケーションを送信するには publish
、 API を使用します。
PUT /<Base path for the publish API from the API Lookup Service>/publications/<Publication ID> HTTP/1.1
Host: <Hostname for the publish API from the API Lookup Service>
Authorization: Bearer <Authorization Token>
Cache-Control: no-cache
パブリケーションを送信すると、メタデータ処理が開始されます。 パブリケーションプロセスを変更または中断することはできません。そのため、パブリケーションを送信する前に準備ができていることを確認してください。
-
パブリケーションが完了するまで待ちます。
パブリケーションが送信されると、 HERE platform がそのパブリケーションを処理します。 現在のパブリケーションの量およびパブリケーションのサイズによっては、処理に数分から数時間かかることがあります。 publish
API を使用して、パブリケーションのステータスを確認できます。
GET /<Base path for the publish API from the API Lookup Service>/publications/<Publication Id> HTTP/1.1
Host: <Hostname for the publish API from the API Lookup Service>
Authorization: Bearer <Authorization Token>
Cache-Control: no-cache
publish v2 の場合、完了したパブリケーションの応答は HTTP ステータス 200 OK を返し、応答本文のstate
フィールドに値succeeded
が含まれます。 例 :
{
"layerDetails": [],
"catalogVersion": 394,
"id": "v2-1ca3aee1-1c3f-4a98-8288-ecfed7466133",
"catalogId": "my-catalog",
"details": {
"expires": 1526769797871,
"state": "succeeded",
"modified": 1526510600520,
"message": "Publication has succeeded",
"started": 1526510597871
},
"layerIds": [
"versioned-layer"
],
"type": "partition",
"versionDependencies": [
{
"hrn": "hrn:my-company:data:::my-catalog",
"version": 395,
"direct": true
}
]
}
完了を待っていることは、以前にファイナライズされたパブリケーションが完了するまで新しいパブリケーションを開始できないため、バージョン管理されたパブリケーションプロセスの重要な部分です。 新しいパブリケーションを開始しようとすると、 HTTP 409 の競合応答が発生します。