ページの先頭行へ戻る
Big Data Integration ServerV1.3.0 EDI連携編ユーザーズガイド
FUJITSU Software

2.4.2 データアップロードAPI

2.4.2.1 概要

データをアップロードする際に用いる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) 登録日時を業務アプリケーションに返信

2.4.2.2 リクエスト設計

2.4.2.2.1 リクエストフォーマット

項目

備考

APIエンドポイント (相対URI)

/upload/{ticket_id}

クエリパラメーター

conv_rule_file_path

必須

変換ルールのファイルPATH

設定したファイルPATHは、以下を満たす必要があります

  • 開発実行環境サーバからアクセスできる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に設定した値を指定

2.4.2.3 レスポンス設計

2.4.2.3.1 レスポンスフォーマット

項目

備考

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}
2.4.2.3.2 HTTPステータスコード

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が一時的に処理を行うことができない

2.4.2.4 メッセージボディ

HTTPステータスコード

メッセージボディ

201

リクエストが成功してリソースの作成が完了したことをHTTPステータスで、作成されたリソースの作成場所をロケーションヘッダで表示

400/500番台

エラーコードと説明文を表示

2.4.2.5 エラーメッセージ

形式

分類

内容

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側の不具合によるエラー

2.4.2.6 キャッシュ

POSTメソッドを用いるため無効

2.4.2.7 注意事項