データローダWebAPI・テーブル初期化
データローダが使用する data_name を定義し、データの挿入を可能な状態にします。(データ投入テーブルの初期化を行います)
エンドポイント
https://pf.xdata.nict.jp/api/v1/dataloaderapi/jsonrpc
リクエスト例
下記は test_event_001 という名前で data_name
を定義し、test_varchar_1 という256文字までの文字列カラムを含むテーブルを初期化するリクエストになります。
{
"id": 1,
"jsonrpc": "2.0",
"method": "loaderwebapi.register_loader",
"params": {
"data_name": "test_event_001",
"schema": "event",
"record_def": {
"test_varchar_1": {
"udt_name": "varchar",
"is_nullable": false,
"column_default": "",
"length": 256
}
},
"unique_columns": [
"location",
"start_datetime"
]
}
}
下記は test_event_002 という名前で data_name
を定義し、test_varchar_1 という暗号化された文字列カラムを含むテーブルを初期化するリクエストになります。暗号化の際は、型指定は varchar
または text
のみを指定でき、また文字長にあたる length
および column_default
は指定できません。
{
"id": 1,
"jsonrpc": "2.0",
"method": "loaderwebapi.register_loader",
"params": {
"data_name": "test_event_002",
"schema": "event",
"record_def": {
"test_varchar_1": {
"udt_name": "varchar",
"is_nullable": false,
"need_crypto": true
}
},
"unique_columns": [
"location",
"start_datetime"
]
}
}
レスポンス例
下記は上記のリクエスト内容での返却内容になります。
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"schema": "event",
"table_name": "test_event_001"
}
}
パラメータ
JSON-RPCリクエスト内容のうち、params 内に指定可能なものを下記に表示します。 Required と書かれたものは必須パラメータです。
data_name
: string (Required)- データを挿入したいテーブルを指し示す名前。ここで定義した名前を init_record, add_record でも使用
schema
: string (Optional)- テーブルが作成されるスキーマ名
- 対向データベースのスキーマ構成を知っており、かつテーブル作成スキーマを指定したい場合のみ使用
record_def
: object (Required)- キー: 属性名(カラム名), 値: 属性情報を表す object
start_datetime
(timestamptz型),end_datetime
(timestamptz型),location
(geometry型) の3つは自動で作成されるため属性名として指定することができず、指定した場合はエラーとなる- 値 object の構造:
udt_name
: string (Required)- 属性の型名。指定可能な値は後述
is_nullable
: bool (Optional, 未指定の場合false
)- null 値を許容する場合、
true
- null 値を許容する場合、
need_crypto
: bool (Optional, 未指定の場合false
)udt_name
がvarchar
またはtext
のときで暗号化したい場合、true
column_default
: string (Optional)- add_record 時に属性値が渡されない場合のデフォルト値
need_crypto
の場合は指定できない
length
: int (Optional)- 格納可能な値の最大長 (指定可能な型名の場合のみ使用可能)
need_crypto
の場合は指定できない
srid
: int (geometry
型の場合のみ, Optional, 未指定の場合4326
)file_name_column
: string (file
型の場合のみ, Required)- 保存対象のファイルに対するファイル名を保存するカラムの名前
- record_defで指定する際は文字列系の定義にする必要がある
file_type_column
: string (file
型の場合のみ, Required)- 保存対象のファイルに対するファイルタイプ(content-type)を保存するカラムの名前
- record_defで指定する際は文字列系の定義にする必要がある
file_prefixid_column
: string (file
型の場合のみ, Required)- 保存対象のファイルに対するプレフィックスIDを保存するカラムの名前
- record_defで指定する際はint系の定義にする必要がある
file_pathid_column
: string (file
型の場合のみ, Required)- 保存対象のファイルに対するパスIDを保存するカラムの名前
- record_defで指定する際は文字列系の定義にする必要がある
file_relativepath_property
: string (file
型の場合のみ, Required)- 保存対象のファイルに対するファイル保存位置の相対パスを送信するjsonキー名
- record_defでは指定しないが、add_record 時にはここで指定した値をproperties以下でキー名として使って相対パスを指定する必要がある
udt_name
に指定可能な型名。file, raster及びbytea型は、add_recordで送信するときにはbase64化する必要がある- 時間系
timestamptz
timestamp
timetz
time
date
- int 系
int8
int4
int2
- float系
float8
float4
- 文字列系
varchar
bpchar
text
- bool
bool
- geometry
geometry
- ファイル(「ファイル参照」を示す独自の型定義)
file
- その他
raster
bytea
- 時間系
unique_columns
: string array (Required)- パフォーマンス改善上、必ずひとつ(複合)ユニークキーを定義する必要があり、それを指定する
record_def
で指定したキー(および予約カラム名)に含まれる文字列の配列を指定する必要あり
戻り値
正常終了時:
schema
: テーブルが作成されたスキーマtable_name
: 実テーブル名
data_name
に対応する初期化処理がすでに実施済みの場合等、エラーが起きた場合は error
を返します。