データファイル更新APIを実装したい

データファイル更新APIとは

本APIの概要

データファイル更新APIとは、貴社の基幹システム/アプリケーションとb→dashを繋ぐことでb→dash管理画面を介さずにデータファイル更新を行うことができるAPIです

貴社の基幹システム/アプリケーションに連携したデータファイル更新を行いたい場合は、本API仕様書をご参照のもと貴社開発環境に実装してください。

データファイル更新APIは、データの更新のみ行うAPIのため、データファイルの更新結果を確認することはできません。データファイルの更新結果をご確認したい場合は、「データファイル更新結果取得API」も併せてご活用ください。
本APIが利用できる更新データファイル

データファイル更新APIが更新できるデータファイルは「基幹システム連携」「API連携」「ローカルデータアップロード」を利用して作成した連携データファイルのみです

作成した連携データファイルに対してクレンジング処理を行った加工データファイルや、統合処理を行った統合データファイル、webアクセスログデータファイルなどのb→dashが定義したb→dashデータファイルの3つのデータファイルには本APIを利用することができません。

本APIで更新できるb→dash管理画面上のデータ

b→dash管理画面上の更新結果確認方法

データファイル更新APIは、貴社の基幹システム/アプリケーションのリクエストによりデータパレットアプリのデータファイル更新機能を起動させることでb→dash上のデータファイルを更新します。

データファイル更新APIを利用した結果は以下のb→dash管理画面(「データファイル一覧画面」「データファイル詳細画面」)で確認することができます。

データファイル一覧画面の例

データファイル詳細画面の例

API利用にあたっての前提事項

事前準備

データファイル更新APIを利用する事前準備として、b→dash管理画面上で更新したいデータファイルの「取込設定」を完了させておく必要があります

更新したいデータファイルが「新規で取り込むデータファイル」で、取込設定がまだ完了していない場合は「データファイルの取込方法」をご参照の上、設定を完了させてください。

更新したいデータファイルが「取込済みデータファイル」で、取込設定をもう一度見直したい場合は「データファイルの取込履歴の確認方法」と「データファイルの取込履歴の編集方法」をご参照の上、設定を完了させてください。

共通仕様

データファイル更新APIでは、b→dash APIの共通仕様も参照する必要があります。
リクエスト上限数』や『全体サイズ上限』といった共通仕様の詳細については、「b→dash APIの共通仕様を知りたい」をご参照ください。

事前準備と共通仕様の確認ができましたら、データファイル更新APIの利用方法について説明していきます!

データファイル更新APIの仕様

処理フロー図

データファイル更新APIの処理フロー図は以下になります。
※グレーアウトしているAPIはデータファイル更新APIと関連する別b→dash API(データファイル更新結果取得API)です

データファイル更新リクエスト

データファイル更新APIのURIURIパラメータを指定してデータ連携をリクエストするリクエストURIを準備します

〇データファイル更新APIのURI

URI https://api.smart-bdash.com/api/v1/datafiles/{datafile_id}

〇URIパラメータ

プロパティ データ型
/サイズ
必須 説明
datafile_id string
/255byte
{データファイルID} 更新したいデータファイルのID

【リクエストURIサンプル

https://api.smart-bdash.com/api/v1/datafiles/191
※上記URIは以下の条件の場合のサンプルとなります
datafile_id:191
URIパラメータは、URIの「{xxx_xx}」に該当する値を代入することで指定することができます。
json形式のファイル(拡張子:.json)にリクエストボディパラメータを指定して、データファイルの更新内容を送信するためのリクエストボディを準備します

〇リクエストボディパラメータ

プロパティ データ型
/サイズ
必須 説明
action_type integer
($int32)
/255byte
0, 1, 2 更新方法の指定
▽以下3通り
・『0』:データファイル「更新設定」通りに更新する
・『1』:常に上書き更新する
・『2』:常に洗い替え更新する
data_type string
/5byte
- json, array data属性の書き方の指定
▽以下2通り
・『json』:JSON配列
・『array』:二次元配列
※指定しない場合:JSON配列
data object[]
/1MB
(data属性が
jsonの場合)

string[][]
/1MB
(data属性が
arrayの場合)
- 更新するデータファイルのレコード内容を記述する

【リクエストボディサンプル(JSONの配列の場合)

{
  "action_type": 0,
  "data_type": "json",
  "data": [
    {"COLUMN_1": "aaa", "COLUMN_2": "bbb"},
    {"COLUMN_1": "ccc", "COLUMN_2": "ddd"}
  ]
}

※上記コードは以下の条件の場合のサンプルとなります
data_type:json

【リクエストボディサンプル(二次元配列の場合)

{ 
  "action_type": 0, 
  "data_type": "array", 
  "data": [ 
    ["COLUMN_1", "COLUMN_2"], 
    ["aaa", "bbb"], 
    ["ccc", "ddd"] 
  ] 
} 

※上記コードは以下の条件の場合のサンプルとなります
data_type:array

準備したリクエストURI/リクエストボディと、下記のリクエストヘッダパラメータを用いて、貴社Webアプリから「POST」リクエスト形式でデータファイル更新のリクエストをします

〇リクエスト形式

HTTPメソッド POST

〇リクエストヘッダパラメータ

プロパティ
/サイズ
必須 説明
Authorization string
/2055文字
Bearer {アクセストークン} 「認証方式を選択したい」で取得したアクセストークン
Content-Type string
/固定値
application/json; charset=UTF-8 固定値

【リクエストコードサンプル】

POST https://sandbox-api.bdash.works/api/v1/datafiles/191

データファイル更新受付レスポンス

リクエストの送信に成功すると、下記のレスポンス形式でデータファイル更新APIからレスポンスが返されます

〇レスポンスボディパラメータ

パラメータ名 Key データ型 説明
階層1:result object -
階層2:code integer($int32) ●ステータスコード
・リクエスト成功:「202」
・リクエストエラー:「400」
階層2:process_code string ●処理コード
※データファイル更新結果取得APIリクエスト時に使用する
※GUIDのような一意な値を採番すること

〇リクエストエラー発生時のエラーメッセージ詳細

# コード エラーメッセージ 説明
1 400 "datafile_id" does not exist. 指定したデータファイルが無い
2 400 The data is larger than the maximum size permitted. データのサイズが超えている

※「データファイル更新API」の1リクエストあたりの上限は以下の通りです
 ・レコード数の上限 :300レコード
 ・データサイズの上限:3MB
3 400 "datafile_id" does not set. 指定したデータファイル設定が未設定
4 400 "datafile_id" does not master datafile. 指定したデータファイルがマスタデータファイル以外
5 400 Specify one of the following "json" or "array" for "data_type". data_typeに不正な文字列が指定された
6 400 Describe "data" in json array format when "data_type" is specified "json". data_typeに「json」指定時に、dataがJSONの配列形式で記述されていない
7 400 Describe "data" in 2d array format when "data_type" is specified "array". data_typeに「array」指定時に、dataが二次元配列形式で記述されていない
8 400 "Data" requires the same column definition for all records. data内の全レコードでカラム定義が統一されていない
9 400 Include "action_type" property. 「action_type」が未指定
10 400 Include "data" property. 「data」が未指定

【レスポンスボディサンプル(成功レスポンス(202))】

{
  "result": {
  "code": 202,
  "process_code": "9924502028"
 }
}
データファイル更新APIで受け取るレスポンスは、データファイル更新処理が正常に開始されたかどうかのレスポンスであり、データファイル更新処理の結果ではありません
データファイル更新処理の結果をAPIで確認したい場合は、「データファイル更新結果取得API」を併せてご活用ください。
データファイル更新APIを利用した場合もデータパレットアプリのエラー通知を受け取ることができます

共通設定でデータパレットのエラー通知設定を稼働させていれば、データファイル更新APIを利用したデータファイル更新の場合もエラー通知を受け取ることができます

通知媒体:「メール」「slack」「b→dash画面上」
通知内容:「更新開始」「更新終了」「遅延」「エラー」

データファイルのエラー通知設定の詳細は「データパレットにおけるエラー通知について」をご参照ください。

データファイル更新APIの重複リクエスト時の挙動

1つのデータファイルに対して、本APIのリクエストとその他のリクエスト(その他APIのリクエストや、貴社の基幹システム/アプリケーションからのリクエストなど)が重複した場合、データファイル更新APIは先に実行されているリクエストの処理が終了してから、本APIのリクエストの処理を実行します