ImportItems
CSVデータインポート
Description
CSVファイルを指定して、データベース(datastore)を更新します。新規・更新・削除が可能です。
- キーフィールドに指定したフィールドに同値が存在する場合は更新され、存在しない場合は新規で登録されます。
- replace_all(bool) オプションをtrue とすると、全データを削除し、指定したCSVデータで新規登録(洗い替え)します。指定しない場合に比べて高速に処理が可能です。
- append(bool)オプションをtrue とすると、既存データを残したまま、指定したCSVデータを追加登録します。指定しない場合に比べて高速に処理が可能です。
- CSV内に削除フィールド(項目名を
_delete_
とする)を用意し、削除するItemにはtrue
または1
を指定すると、該当Itemが削除されます。 - CSV内のステータスを意味するフィールドは、CSVのヘッダー名を
_status_
として、データにはステータス名(status_idではありません)を指定します。 - CSV内に公開グループ指定フィールド(項目名を
_group_id_
とする)を用意し、CSVデータにHexabaseで画面から定義されたグループID
を指定すると、該当Itemが指定したグループへ公開されます。(グループアクセスキーが付与される)
Method
POST
Request URL Format
/api/v0/applications/:app-id/datastores/:datastore-id/import
URL Params
app-id : アプリケーションID(画面から指定したアプリケーションID、または、p_id)
datastore-id : データストアID(画面から指定したデータストアID、または、d_id)
Content-Type : multipart/form-data
filename : インポートデータファイル名
file : インポートファイル
key_field_displayid : インポート先データストアのキー項目として利用するフィールドIDを指定します(この列をキーとして更新をかけます)
replace_all : false | true 指定されたCSVでデータを初期化(すべてのデータを削除して、新規追加されます)
append : false | true 指定されたCSVデータを既存のデータに追加します。別途、`条件を指定して削除API`と順番に実行することでデータを差分削除&追加インポートが可能です。
no_queue : false | true 指定されたCSVデータをQueueに入れずに即時インポートを実行します。100件以下のデータに対して即時実行が可能です。
overwrite_autonumber: false | true インポート先の自動採番項目が初期化されてゼロスタートされてインポートされます。
validate : true | false インポート時、データチェックを省略する。
Request Sample
POST https://api.xxx.com/api/v0/applications/APP-ID/datastores/DATABASE-ID/import
CSVファイルイメージ
- CSVヘッダ行には、画面から指定したフィールドIDを指定します
key_field_displayid
更新利用時は、キーフィールドと更新対象フィールド以外の列を省略したCSVを利用できます。(データベース内のすべてのフィールドを含む必要はありません)
TITLE,_status_,Field1,No,_delete_
import1,ステータス1,A,001,0
import2,ステータス2,B,002,0
Response
no_queueが指定なし、またはfalseの場合
{
"temp_datastore_id": "5e58aa0fe4ecac3bd828aead",
"stream_id": "saXjPYrkoJULrJTXHystqbXBqmUkILVbbBxvyXNsiJXKUdcROfTQOwGwCo6nqkwDDGjnUeiPtdkjkDeqgjquUOmcl0B6aM9q2V5526y2Xn3XmPZFsBSrooAwqTSAjWYr"
}temp_datastore_id : データインポート結果の取得で利用できるID (append または replace_all をtrue指定の場合はGetImportResultsで利用できない)
stream_id : インポート経過をSubscribeするためのID※ Subscribe仕様については、このドキュメントには記載していません(現在、ドキュメント準備中)
no_queueがtrueの場合
成功時
{
"errors": [],
"has_error": false,
"result": {
"imported": 4,
"item_count": 4
}
}エラー時
{
"errors": [
{
"description": "the number of imports exceeds the limit. please set the no_queue flag to false.",
"error": "too many items",
"error_level": "ERROR"
}
],
"has_error": true,
"result": {
"imported": 0,
"item_count": 104
}
}imported : 処理したインポート件数
item_count : 対象インポート件数