データをアップロードする際に用いるWeb APIです。
本APIを使用するには、データ格納準備APIでticket_idを発行している必要があります。
変換ルールのファイルPATHとアップロードしたいデータを送信することで、個社形式のデータを標準形式に変換した上で格納することができます。データ変換には変換ルール実行機能が用いられます。
正常に格納が完了した場合は登録日時が返却されます。
クエリパラメータで指定した変換ルールのファイルPATHが開発実行環境サーバからアクセスできない場合はエラーレスポンスが返却されます。
指定したticket_idがない場合エラーレスポンスが返却されます。
データ変換が異常終了した場合やタイムアウトした場合はエラーレスポンスが返却されます。
ファイルフォーマットにファイルの読み込み対応していないフォーマットが指定された場合は、エラーレスポンスを返却します。
変換後の処理でエラーが発生した場合は、すでに登録されているデータはロールバックし、変換後のファイルを削除します。
図2.3 データアップロードAPIの呼び出し関係
(1) curlコマンドなどでデータをAPIサーバへ送信
(2) データベース(Fujitsu Enterprise Postgres)から、指定された伝票データの存在確認のため、メタデータを取得
(3) 指定した変換ルールと個社形式の伝票データをAnyTranに送り、データ変換を実施
(4) 変換したデータを共有ファイルシステムに格納
(5) アップロードした伝票データIDのアップロード完了フラグを更新
(6) 登録日時を業務アプリケーションに返信
項目 | 値 | 備考 | |||
---|---|---|---|---|---|
APIエンドポイント (相対URI) | /upload/{ticket_id} | ||||
クエリパラメータ | conv_rule_file_path | 選択(注) | 変換ルールのファイルPATH | 設定した変換ルールのファイルPATHを使用する場合は、以下の条件を満たす必要があります
conv_rule_idパラメータを指定する場合は本パラメータを指定することはできません conv_rule_idパラメータと同時に指定した場合はエラーとなります | |
conv_rule_id | 選択(注) | 変換ルールID | 変換ルールIDを利用する場合は、以下の条件を満たす必要があります
conv_rule_file_pathパラメータを指定する場合は本パラメータを指定することはできません conv_rule_file_pathパラメータと同時に指定した場合はエラーとなります | ||
HTTPメソッド | POST | ||||
HTTPリクエストヘッダ | Content-Type | application/octet-stream | |||
Authorization | 任意 | Bearer {token} | 使用する認証サービスのユーザー認証用トークンを指定します | ||
HTTPリクエストボディ | アップロードデータ | ファイルを指定します |
注)conv_rule_file_pathパラメータまたは、conv_rule_idパラメータどちらかの指定が必須です。
curl -i -s "http://<開発実行環境サーバのIPアドレス>:<ポート番号(注)>/upload/<発行されたticket_id>?conv_rule_file_path=/var/tmp/conv_rule_file1" -X POST -H "Content-Type:application/octet-stream" --data-binary @/var/tmp/data.txt
注)インベントリファイルのapi_tomcat_portに設定した値を指定
参照
Apache Tomcatに配備されたAPIエンドポイント(相対URI)は、Apache Tomcatの設定により異なります。
Apache Tomcatに配備されたAPIエンドポイント(相対URI)の確認方法については、Apache Tomcatのオンラインマニュアルなどを参照してください。
項目 | 値 | 備考 | |
---|---|---|---|
HTTPステータス | int(3桁) | 正常時201、異常時は後述 | |
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レスポンスボディ | create_time | 登録日時 (JST) | YYYYmmddHHMMSS形式 |
search_items | Xpathの検索に則った形式の場合に、key/Valueの内容が返却されます それ以外の場合は、空(null)となります | 配列は下記オブジェクトを要素に持ちます
| |
key | 検索キー | ||
value | 検索値 |
HTTP/1.1 201 X-Request-Id: 121ec022-ad15-438a-bd30-be7227289fa8 X-Frame-Options: DENY X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Location: /data Cache-Control: no-cache Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Date: Thu, 20 Jan 2022 05:25:21 GMT {"create_time":"20220120142519","search_items":[]}
HTTPステータスコード | メッセージ | 利用場面 |
---|---|---|
201 | Created | POSTメソッドによりリソースが作成された |
400 | Bad Request | リクエスト違反(必須項目が空など)や他の400番台が適さない |
401 | Unauthorized | 認証されていない、または認証に失敗した |
403 | Forbidden | 認証以外の理由でリソースへアクセスできない |
404 | Not Found | サーバがリクエストされたリソースを発見できない |
408 | Request Time-out | リクエストがタイムアウトした |
405 | Method Not Allowed | 指定以外のHTTPメソッドを指定された |
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: 66de8bcb-b5e9-4a1f-9ba8-84ffb1b5e694 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: Wed, 09 Jun 2021 07:41:16 GMT Connection: close {"error_codes":[{"code":"112","message":"Invalid convert rule file path."}]}
エラーリスト
HTTPステータスコード | エラーコード | 内容 |
---|---|---|
400 | 001 | リクエストボディに誤りがある |
400 | 005 | 変換ルールIDの値が設定されていない |
400 | 006 | リクエストヘッダの指定(Content-Typeなど)に誤りがある |
400 | 007 | コマンド実行時、ファイルが選択されていない |
400 | 008 | 本版では未使用 |
400 | 009 | 変換ルールのファイルPATHの値が設定されていない |
400 | 104 | 変換ルールIDの値が不正である |
400 | 108 | 本版では未使用 |
400 | 109 | 標準形式のファイルを解析できない |
400 | 111 | ファイルフォーマットの値が不正である |
400 | 112 | 変換ルールのファイルPATHの値が不正である |
401 | 201 | 認証用トークンによる認証に失敗した |
403 | 202 | アクセスが許可されていないユーザーのアクセスによる認可エラー |
404 | 203 |
|
404 | 303 | API側の不具合によるエラー |
405 | 206 | 指定以外のHTTPメソッドを指定された |
408 | 204 | データへのアクセスがタイムアウトした |
413 | 205 | リクエストボディのサイズが上限値を超えた |
500 | 301 | 予期せぬエラーが発生した |
500 | 302 | データ変換に失敗した |
500 | 303 | API側の不具合によるエラー |
503 | 007 | コマンド実行時、ファイルが選択されていない |
503 | 303 | API側の不具合によるエラー |
POSTメソッドを用いるため無効です。
クエリパラメータとHTTPリクエストボディには異常系において以下のような挙動の違いがあります。
同一パラメータが複数指定された場合
クエリパラメータ:最初の指定が有効になる
リクエストボディ:最後の指定が有効になる
無効なパラメータが指定された場合
クエリパラメータ:無視される
リクエストボディ:エラーになる
1度の利用でアップロードできるファイルの個数は1つです。
1度の利用でアップロードできるファイルサイズの上限は2MB(注)です。
リクエスト送受信時の通信タイムアウトは300秒(注)です。
注)これらのパラメータはユーザーによる変更はできません。変更を希望する場合はシステム管理者への依頼が必要となります。
アップロード対象がXMLファイルの場合、以下の点に注意してください。
XMLは、version1.0の第4版に準拠する
アップロード対象のファイルは、1ファイルに対して1XML文章となる