データ基盤に格納されたデータを個社形式、または標準形式に変換して取得するWeb APIです。
データ検索APIなどで取得した伝票データIDを用いることでダウンロードしたいデータを指定します。
マスキング機能が有効な場合、ユーザー情報を元にアクセス権限コントロールよりアクセスルールを取得し、ダウンロードの可否、ダウンロードデータのマスキング処理を行います。
個社形式データフラグがTrueと指定された場合は、ダウンロード対象ファイルを個社形式データとします。
個社形式データフラグがFalse、または指定なしの場合は、ダウンロード対象ファイルを標準形式データとします。
処理が正常終了した場合は指定した形式のダウンロードデータが返却されます。
クエリパラメータで指定した変換ルールのファイルPATHが開発実行環境サーバからアクセスできない場合は、エラーレスポンスが返却されます。
クエリパラメータの変換ルールのファイルPATHが指定なしの場合は、標準形式の状態でデータが返却されます。
指定した伝票データIDがデータ基盤内に存在しない場合はエラーレスポンスが返却されます。
データ変換が異常終了した場合やタイムアウトした場合はエラーレスポンスが返却されます。
図2.5 データダウンロードAPIの呼び出し関係
(1) データダウンロードAPIから呼び出され、共有ファイルシステムから伝票データを取得する。
アクセス権限コントロール連携ありの場合、伝票データにマスキング処理を行うため、以下(2)を実施する。
(アクセス権限コントロール連携なしまたは、ダウンロードユーザーがデータオーナーの場合、マスキング処理は行わない。)
(2) ユーザー情報からアクセスルールを取得し、取得したアクセスルールを元に伝票データをマスキングします。
変換ルールのファイルPATHが指定されている場合、対象ファイルを変換するため、以下(3)を実施する。
(変換ルールのファイルPATHが指定されていない場合、変換処理は呼び出されない。)
(3) 取得した変換ルールを変換コマンドにより、AnyTranで使えるように変換して使用し、AnyTranでデータ変換する。
(4) 伝票抽出用メタデータデータベース(Fujitsu Enterprise Postgres)に対してSQLを実行し、取得済フラグを更新する。
取得したデータをjson形式で出力
項目 | 値 | 備考 | |||
---|---|---|---|---|---|
APIエンドポイント (相対URI) | /download/{ticket_id} | ticket_idはデータ検索APIで取得した値 | |||
クエリパラメータ | conv_rule_file_path | 任意 | 変換ルールのファイルPATH | conv_rule_file_pathとconv_rule_idの指定がない場合は変換なしで取得 設定したファイルPATHは、以下を満たす必要があります
conv_rule_idパラメータを指定する場合は本パラメータを指定できません conv_rule_idパラメータと同時に指定した場合はエラーとなります | |
conv_rule_id | 任意 | 変換ルールID | conv_rule_file_pathとconv_rule_idの指定がない場合は変換なしで取得 変換ルールIDを利用する場合は、以下の条件を満たす必要があります
conv_rule_file_pathパラメータを指定する場合は本パラメータを指定にすることができません conv_rule_file_pathパラメータと同時に指定した場合はエラーとなります | ||
each_data_flag | 任意 | 個社形式データフラグ |
パラメータ無しだった場合は“False”とします | ||
HTTPメソッド | GET | ||||
HTTPリクエストヘッダ | Authorization | 任意 | Bearer {token} | 使用する認証サービスのユーザー認証用トークンを指定します |
curl -i -s "http://<開発実行環境サーバのIPアドレス>:<ポート番号(注)>/download/01234567890123456789?conv_rule_file_path=/var/tmp/conv_rule_file2" -X GET
注)インベントリファイルの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 | ||
Transfer-Encoding | 符号化方式 | ||
Date | 日付 | ||
HTTPレスポンスボディ | ダウンロードデータ |
HTTP/1.1 200 X-Request-Id: be9b7a56-f658-40d9-8663-f1a385eeb145 X-Frame-Options: DENY X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Transfer-Encoding: chunked Date: Wed, 26 Jan 2022 01:58:21 GMT {ダウンロードデータ}
HTTPステータスコード | メッセージ | 利用場面 |
---|---|---|
200 | OK | リクエストの処理に成功した |
400 | Bad Request | リクエスト違反(Content-Typeが空など)や他の400番台が適さない |
401 | Unauthorized | 認証されていない、または認証に失敗した |
403 | Forbidden | 認証以外の理由でリソースへアクセスできない |
404 | Not Found | サーバがリクエストされたリソースを発見できない |
405 | Method Not Allowed | 指定以外のHTTPメソッドを指定された |
408 | Request Time-out | リクエストがタイムアウトした |
415 | Unsupported Media Type | サポートしていないメディアタイプが指定された |
500 | Internal Server Error | APIで障害が発生した |
503 | Service Unavailable | APIが一時的に処理を行うことができない |
HTTPステータスコード | メッセージボディ |
---|---|
200 | リソース内容を表示 |
400/500番台 | エラーコードと説明文を表示 |
形式
分類 | 内容 |
---|---|
code | エラーの詳細な種類(HTTPステータスコードではない) |
message | エラーメッセージ本文 |
HTTP/1.1 400 X-Request-Id: 2c98d779-6423-4d6d-9b09-bfb590e04a13 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: Thu, 10 Jun 2021 01:18:13 GMT Connection: close {"error_codes":[{"code":"009","message":"Convert rule file path is not set."}]}
エラーリスト
HTTPステータスコード | エラーコード | 内容 |
---|---|---|
400 | 001 | リクエストボディに誤りがある |
400 | 005 | 変換ルールIDの値が設定されていない。 |
400 | 008 | 本版では未使用 |
400 | 009 | 変換ルールのファイルPATHの値が設定されていない |
400 | 104 | 変換ルールIDの値が不正である。 |
400 | 108 | 本版では未使用 |
400 | 112 | 変換ルールのファイルPATHの値が不正である |
400 | 206 | URLに誤りがある |
401 | 201 | 認証用トークンによる認証に失敗した |
403 | 202 | アクセスが許可されていないユーザーのアクセスによる認可エラー |
404 | 203 | 存在しないデータにアクセスした(ticket_idに誤りがあるか、または発行したticket_idの有効期限が切れている) |
404 | 303 | API側の不具合によるエラー |
405 | 206 | 指定以外のHTTPメソッドを指定された |
408 | 204 | データへのアクセスがタイムアウトした |
413 | 205 | リクエストボディのサイズが上限値を超えた |
500 | 301 | 予期せぬエラーが発生した |
500 | 302 | データ変換に失敗した |
500 | 303 | 予期せぬエラーが発生した |
500 | 401 | データの改ざんを検出した |
503 | 303 | API側の不具合によるエラー |
指定例 | 説明 |
---|---|
Cache-Control: max-age=86400 | 86400 秒後(24 時間)を有効期限としてキャッシュさせる |
リクエスト送受信時の通信タイムアウトは300秒(注)です。
注)これらのパラメータはユーザーによる変更はできません。変更を希望する場合はシステム管理者への依頼が必要となります。
ダウンロード対象がXMLファイルの場合、以下の点に注意してください。
XML宣言のStandaloneの値が常に省略(注)される場合があります。
注)省略時はStandalone=yesと同じ動作となります。
返却データの一部の空白や改行が省略される場合があります。
XMLは、version1.0の第4版に準拠します。
ダウンロード対象のファイルは、1ファイルに対して1XML文章となります。