データの格納場所を生成する際に用いるWeb APIです。
データ基盤にアップロードするデータに発送元拠点コード・発送先拠点コードなどのメタデータと検索用パラメータを付与し格納先を生成します。
メタデータの有効が確認され、格納場所の生成が正常に終了した際には格納場所と紐づいた有効期限付きの伝票データIDとその有効期限が返却されます。
確保した格納場所は伝票データIDの有効期限内にデータが格納されなかった場合、破棄されます。
検索用パラメータは、検索キー名と検索値のリストとしてデータ格納準備APIで登録しデータ検索APIのリクエストで指定することで、検索条件に合致する伝票データIDのリストを取得することができます。
データ格納準備APIで指定する検索用パラメータの検索キー名は、事前にシステム管理者が定義したものを使用します。
事前に定義された検索用パラメータは「検索用パラメータ定義内容取得API」を使用して定義内容を参照することができ、「検索用パラメータ名定義更新API」を使用して定義内容を更新することもできます。
システムの上限として、各情報区分コードに対する検索用パラメータの最大数は20個とします。
図2.2 データ格納準備APIの呼び出し関係
作成した伝票データIDが既存のIDと重複していないか確認し、重複していた場合は再度伝票データIDを作成します。重複したIDがないことを確認できるまで繰り返します。
メタデータと検索用パラメータをデータベース(Fujitsu Enterprise Postgres)に登録します。
項目 | 値 | 備考 | ||
---|---|---|---|---|
APIエンドポイント (相対URI) | /upload | |||
HTTPメソッド | POST | |||
HTTPリクエストヘッダ | Content-Type | application/json | ||
Authorization | 任意 | Bearer {token} | 使用する認証サービスのユーザー認証用トークンを指定します | |
HTTPリクエストボディ | data_type | 必須 | 情報区分コード | 4桁までの任意の値(数字文字列)を指定することができます 例) 出荷予定データの場合:10 出荷確定データの場合:20 |
src_location_code | 必須 | 発送元拠点コード | GLN:国際標準の企業、事業所コード 拠点コードを13桁の数字で指定します 発送先、発送元に同一のコードを指定可能です | |
dst_location_code | 必須 | 発送先拠点コード | ||
search_items | 任意 | 検索用パラメータ | 配列では下記のオブジェクトを指定します
オブジェクトは最大で20個とします | |
key | 任意 | 検索キー | 定義された検索キーを指定します 変換後の値を登録する検索キーの指定はXpathの検索に則った形式または英数字(文字列)で指定してください groupの値を検索値とした場合の例を以下に示します
| |
value | 任意 | 検索値 | 検索キーをXpathの検索に則った形式を指定する場合指定した値が検索値となります 検索キーを英数字(文字列)で指定した場合、Valueで指定した値が検索値となります |
curl -i -s http://<開発実行環境サーバのIPアドレス>:<ポート番号(注)>/upload -H "Content-Type:application/json" -d "{\"data_type\":\"20\",\"src_location_code\":\"0000000000010\",\"dst_location_code\":\"0000000000020\"}"
注)インベントリファイルのapi_tomcat_portに設定した値を指定
参照
Apache Tomcatに配備されたAPIエンドポイント(相対URI)は、Apache Tomcatの設定により異なります。
Apache Tomcatに配備されたAPIエンドポイント(相対URI)の確認方法については、Apache Tomcatのオンラインマニュアルなどを参照してください。
項目 | 値 | 備考 | |
---|---|---|---|
HTTPステータス | int(3桁) | 正常時200、異常時は後述 | |
HTTPレスポンスヘッダ | X-Request-Id | リクエストID | リクエストを一意に示す値 |
X-Frame-Options | DENY | ||
X-Content-Type-Options | nosniff | ||
X-XSS-Protection | 1; mode=block | ||
Location | リソース作成先URI | 正常時、リソース作成場所を表示 | |
Cache-Control | キャッシュに関する情報 | ||
Content-Type | application/json;charset=UTF-8 | ||
Transfer-Encoding | 符号化方式 | ||
Date | 日付 | ||
HTTPレスポンスボディ | ticket_id | 伝票データID | 20桁 |
deadline_date | 有効期限日時 (JST) | YYYYmmddHHMMSS形式 メタデータ格納時点から設定ファイルに記載された有効時間を追加した時間 |
HTTP/1.1 201 X-Request-Id: cdf9b2ce-5181-4c6f-b503-450873087bf9 X-Frame-Options: DENY X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Location: /database/dbtech Cache-Control: no-cache Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Date: Wed, 26 Jan 2022 02:52:47 GMT {"ticket_id":"05974539295586651223","deadline_date":"20210609135403"}
HTTPステータスコード | メッセージ | 利用場面 |
---|---|---|
201 | Created | POSTメソッドによりリソースが作成された |
400 | Bad Request | リクエスト違反(必須項目が空など)や他の400番台が適さない |
401 | Unauthorized | 認証されていない、または認証に失敗した |
403 | Forbidden | 認証以外の理由でリソースへアクセスできない |
404 | Not Found | サーバがリクエストされたリソースを発見できない |
405 | Method Not Allowed | 指定以外のHTTPメソッドを指定された |
408 | Request Time-out | リクエストがタイムアウトした |
413 | Request to large | リクエストボディが大きすぎる |
500 | Internal Server Error | APIで障害が発生した |
503 | Service Unavailable | APIが一時的に処理を行うことができない |
HTTPステータスコード | メッセージボディ |
---|---|
201 | リクエストが成功してリソースの作成が完了したことをHTTPステータスで、作成されたリソースの作成場所をロケーションヘッダで表示 |
400/500番台 | エラーコードと説明文を表示 |
形式
分類 | 内容 |
---|---|
code | エラーの詳細な種類(HTTPステータスコードではない) |
message | エラーメッセージ本文 |
HTTP/1.1 400 X-Request-Id: 8a0fb3eb-0e6a-44d4-9869-c46d63e9191a X-Frame-Options: DENY X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Date: Tue, 08 Jun 2021 16:20:24 GMT Connection: close {"error_codes":[{"code":"103","message":"Invalid dst location code."}]}
エラーリスト
HTTPステータスコード | エラーコード | 内容 |
---|---|---|
400 | 001 | リクエストボディに誤りがある |
400 | 002 | 情報区分コードの値が設定されていない |
400 | 003 | 発送元拠点コードの値が設定されていない |
400 | 004 | 発送先拠点コードの値が設定されていない |
400 | 006 | リクエストヘッダの指定(Content-Typeなど)に誤りがある |
400 | 101 | 情報区分コードの値が不正である |
400 | 102 | 発送元拠点コードの値が不正である |
400 | 103 | 発送先拠点コードの値が不正である |
400 | 108 | 検索キー名が不正である |
400 | 110 | 検索値が不正である |
401 | 201 | 認証用トークンによる認証に失敗した |
403 | 202 | アクセスが許可されていないユーザーのアクセスによる認可エラー |
405 | 206 | 指定以外のHTTPメソッドを指定された |
408 | 204 | データへのアクセスがタイムアウトした |
413 | 205 | リクエストボディのサイズが上限値を超えた |
500 | 301 | 予期せぬエラーが発生した |
500 | 303 | 予期せぬエラーが発生した |
500 | その他 | 予期せぬエラーが発生した |
503 | 303 | API側の不具合によるエラー |
POSTメソッドを用いるため無効です。
発行したticket_idの有効期限内にデータアップロードAPIを用いてデータをアップロードしなかった場合、本APIで発行したticket_idは削除されます。
リクエスト送受信時の通信タイムアウトは300秒(注)です。
注)これらのパラメータはユーザーによる変更はできません。変更を希望する場合はシステム管理者への依頼が必要となります。
検索用パラメータの上限を増やしたい場合はシステム管理者への依頼が必要となります。
使用可能な文字はRFC 2396に準拠します。