データをアップロードする際に用いるWeb APIです。
本APIを使用するには、データ格納準備APIでticket_idを発行している必要があります。
変換ルールのファイルPATHとアップロードしたいデータを送信することで、個社形式のデータを標準形式に変換した上で格納することができます。データ変換には変換ルール実行機能が用いられます。
正常に格納が完了した場合は登録日時が返却されます。
クエリパラメーターで指定した変換ルールのファイルPATHが開発実行環境サーバからアクセスできない場合はエラーレスポンスが返却されます。
指定したticket_idがない場合エラーレスポンスが返却されます。
データ変換が異常終了した場合やタイムアウトした場合はエラーレスポンスが返却されます。
図2.2 データアップロードAPIの呼び出し関係
(1) curlコマンドなどでデータをAPIサーバへ送信
(2) データベース(FUJITSU Software Enterprise Postgres)から、指定された伝票データの存在確認のため、メタデータを取得
(3) 指定した変換ルールと個社形式の伝票データをAnyTranに送り、データ変換を実施
(4) 変換したデータを共有ファイルシステムに格納
(5) アップロードした伝票データIDのアップロード完了フラグを更新
(6) 登録日時を業務アプリケーションに返信
項目 | 値 | 備考 | ||
---|---|---|---|---|
APIエンドポイント (相対URI) | /upload/{ticket_id} | |||
クエリパラメーター | conv_rule_file_path | 必須 | 変換ルールのファイルPATH | 設定したファイルPATHは、以下を満たす必要があります
|
HTTPメソッド | POST | |||
HTTPリクエストヘッダ | Content-Type | application/octet-stream | ||
Authorization | Bearer {token} | 今版では使用できません | ||
HTTPリクエストボディ | アップロードデータ | ファイルを指定する |
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に設定した値を指定
項目 | 値 | 備考 | |
---|---|---|---|
HTTPステータス | int(3桁) | 正常時201、異常時は後述 | |
Locationヘッダ | Location | リソース作成先URI | 正常終了時、リソース作成場所を表示 |
HTTPレスポンスヘッダ | Content-Type | application/json;charset=UTF-8 | |
Transfer-Encoding | 符号化方式 | ||
Date | 日付 | ||
HTTPレスポンスボディ | create_time | 登録日時 (JST) | YYYYmmddHHMMSS形式 |
HTTP/1.1 201 Location: /data Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Date: Tue, 08 Jun 2021 16:37:49 GMT {create_time:20210609013749}
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 Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Date: Wed, 09 Jun 2021 07:41:16 GMT Connection: close {"error_codes":[{"code":"108","message":"Invalid convert rule file path."}]}
エラーリスト
HTTPステータスコード | エラーコード | 内容 |
---|---|---|
400 | 001 | リクエストボディの形式が誤っている(JSON形式でない) |
400 | 007 | コマンド実行時、ファイルが選択されていない |
400 | 008 | 変換ルールのファイルPATHの値が設定されていない |
400 | 108 | 変換ルールのファイルPATHの値が不正である |
401 | 201 | 認証用トークンによる認証に失敗した |
403 | 202 | アクセスが許可されていないユーザーのアクセスによる認可エラー |
404 | 203 | 存在しないデータにアクセスした(ticket_idに誤りがあるか、または発行したticket_idの有効期限が切れている) |
405 | 206 | 指定以外のHTTPメソッドを指定された |
408 | 204 | データへのアクセスがタイムアウトした |
413 | 205 | リクエストボディのサイズが上限値を超えた |
500 | 301 | 予期せぬエラーが発生した |
500 | 302 | データ変換に失敗した |
503 | 303 | API側の不具合によるエラー |
POSTメソッドを用いるため無効
クエリパラメーターとHTTPリクエストボディには異常系において以下のような挙動の違いがあります。
同一パラメーターが複数指定された場合
クエリパラメーター:最初の指定が有効になる
リクエストボディ:最後の指定が有効になる
無効なパラメーターが指定された場合
クエリパラメーター:無視される
リクエストボディ:エラーになる
1度の利用でアップロードできるファイルの個数は1つです。
1度の利用でアップロードできるファイルサイズの上限は2MB(注)です。
リクエスト送受信時の通信タイムアウトは300秒(注)です。
注)これらのパラメーターはユーザーによる変更はできません。変更を希望する場合はシステム管理者への依頼が必要となります。