データをメタデータで検索し、検索条件に合致する伝票データ一覧のID(ticket_id)リストを取得する際に用いるWeb APIです。
取得されたIDはデータダウンロードAPIで利用されます。
情報区分コード以外の項目に対して、値の最後に“*”を付与することでAND検索、“-”を付与することでOR検索を項目間の条件として指定することができます。指定がない場合はAND検索を行います。
項目内の値をカンマ区切りで指定することで複数の条件のOR検索が可能です。
正常に処理が完了した場合は検索条件に合致した伝票データのIDリストがJSON形式で返却されます。
マスキング機能が有効な場合、実行したユーザーのアクセス権限チェックを行います。返却する伝票データのIDリストに対してマスキングすることが可能です。
検索条件に応じたデータが存在しない場合はその旨が返却されます。
図2.4 データ検索APIの呼び出し関係
(1) 情報区分コードに応じた検索用パラメータを取得します。
(2) 伝票抽出用メタデータデータベース(Fujitsu Enterprise Postgres)に対してSQLを実行します。
アクセス権限コントロール連携ありの場合、伝票データIDにマスキング処理を行うため、以下(3)を実施します。
(アクセス権限コントロール連携なしの場合、マスキング処理は行われません。)
(3) ユーザー情報からアクセスルールを取得し、取得したアクセスルールを元に伝票データのIDリストをマスキングします。
項目 | 値 | 備考 | |||
---|---|---|---|---|---|
APIエンドポイント (相対URI) | /search | ||||
クエリパラメータ | data_type | 必須 | 情報区分コード | 4桁までの任意の値(数字文字列)を指定することができます 例) 出荷予定データの場合:10 出荷確定データの場合:20 | |
get_status | 任意 | 取得フラグ | 0: 未取得,1: 取得済, 2: 未取得・取得済み両方 注)初期値: 0,データダウンロードAPIで取得された場合: 1,未指定時: 0 | ||
src_location_code | 任意 | 発送元拠点コード | 拠点コードを13桁の数字で指定します 未指定時は全ヒット | ||
dst_location_code | 任意 | 発送先拠点コード | 拠点コードを13桁の数字で指定します 未指定時は全ヒット | ||
from_create_datetime | 任意 | 検索範囲の始点日時 | YYYYmmddHHMMSS形式 データ格納日時を範囲検索します 未指定時は全ヒット | ||
to_create_datetime | 任意 | 検索範囲の終点日時 | YYYYmmddHHMMSS形式 データ格納日時を範囲検索します 未指定時は全ヒット | ||
key名 | 任意 | 検索用パラメータ | パラメータ名は定義されている検索用パラメータの項目名が設定されます 最大で20個設定可能とします | ||
separator | 任意 | 検索値の区切り文字 | 指定がない場合はカンマとします エスケープ文字も指定可能です 例) & → %26 | ||
HTTPメソッド | GET | ||||
HTTPリクエストヘッダ | Authorization | 任意 | Bearer {token} | 使用する認証サービスのユーザー認証用トークンを指定します |
curl -i -s "http://<開発実行環境サーバのIPアドレス>:<ポート番号(注)>/search?data_type=10&get_status=0&src_location_code=1234567890321&dst_location_code=1234567890123&from_create_datetime=20210524120130&to_create_datetime=20210624120130" -X GET
注)インベントリファイルのapi_tomcat_portに設定した値を指定
src_location_code(発送元拠点コード)、dst_location_code(発送先拠点コード)、key名(検索用パラメータ)の項目に対しては、値の指定方法を変えることで下記のような検索ができます。複数種類の検索が混在していた場合、項番の順序に従って評価します。
項番 | 検索の種類 | 値の指定方法 | 値の例 |
---|---|---|---|
1 | 項目内のOR検索 | 「検索値の区切り文字」で複数指定 | 1110123456789,2220123456789 |
2 | 項目間のOR検索 | 最後に“-”を付与 | 1110123456789- |
3 | 項目間のAND検索(注) | 最後に“*”を付与 または何も付与しない | 1110123456789* 1110123456789 |
注) 末尾に*がある値(100*など)を項目間のAND検索で使用する場合は末尾に付与する*を省略できません(例6)を参照)
src_location_code=1110123456789*&dst_location_code=2220123456789*
src_location_code=1110123456789-&dst_location_code=2220123456789-
src_location_code=1110123456789,3330123456789
src_location_code=1110123456789,3330123456789*&dst_location_code=2220123456789,4440123456789*
src_location_code=1110123456789,3330123456789*&dst_location_code=2220123456789,4440123456789-&mykey=5555-
mykey1=2024100**&mykey2=111**
検索用パラメータに対しては、各値の指定方法を変えることで下記のような検索ができます。
項番 | 検索の種類 | 値の指定方法 | 値の例 |
---|---|---|---|
1 | {値}と一致 | {値} または equal:{値} | abcde equal:vwxyz |
2 | {値}より大きい(文字列比較) | greater-than:{値} | greater-than:20221001 |
3 | {値}より大きい(文字列比較) または一致 | greater-than-or-equal:{値} | greater-than-or-equal:20220101 |
4 | {値}より小さい(文字列比較) | less-than:{値} | less-than:20211201 |
5 | {値}より小さい(文字列比較) または一致 | less-than-or-equal:{値} | less-than-or-equal:20211201 |
6 | {値}で始まる | starts-with:{値} | starts-with:ab |
7 | {値}で終わる | ends-with:{値} | ends-with:de |
8 | {値}を含む | contains:{値} | contains:bc |
mykey1=abcde
mykey1=greater-than:abcde
mykey1=starts-with:ab,ends-with:yz
mykey1=equal:abcde,equal:vwxyz*&mykey2=starts-with:ab,ends-with:yz*
src_location_code=1110123456789,3330123456789*&mykey1=equal:abcde,equal:vwxyz-&mykey2=starts-with:ab,ends-with:yz-
注意
文字列比較
検索用パラメータの文字列比較(greater-than, greater-than-or-equal, less-than, less-than-or-equal)では文字列を左から1文字ずつ比較し、大小を判定します。
大小比較の結果はデータ格納・抽出APIで使用しているデータベースの照合順序であるエンコーディングのバイナリ値の大小関係で判定されます。
日付や値段など数値比較を実施したい場合は比較対象となる値の桁数を揃えることで数値比較と同じ結果を得ることができます。
文字列比較の使用例:
例1) mykey1=2024/10/01でファイルアップロード済の場合
検索用パラメータmykey1が”greater-than:2024/09/30”のデータを検索(桁数統一)
mykey1=greater-than:2024/09/30
結果:mykey1=2024/10/01を持つticket_idがヒットする
検索用パラメータmykey1が”greater-than:2024/9/30”のデータを検索(桁数不統一)
mykey1=greater-than:2024/9/30
結果:mykey1=2024/10/01を持つticket_idはヒットしない
例2) mykey2=130でファイルアップロード済の場合
検索用パラメータmykey2が”greater-than:1200”のデータを検索
mykey2=greater-than:1200
結果:mykey2=130を持つticket_idがヒットする
検索用パラメータmykey2が”less-than:1200”のデータを検索
mykey2=less-than:1200
結果:mykey2=130を持つticket_idはヒットしない
参照
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 | ||
Cache-Control | キャッシュに関する情報 | ||
Content-Type | application/json;charset=UTF-8 | ||
Transfer-Encoding | 符号化方式 | ||
Date | 日付 | ||
HTTPレスポンスボディ | ticket_id | ticket_id一覧 | JSON配列 (要素はstring) データダウンロードAPIで利用 |
HTTP/1.1 200 X-Request-Id: 9561c9b8-125e-405b-9951-2fed010bcc88 X-Frame-Options: DENY X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Cache-Control: no-cache Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Date: Wed, 26 Jan 2022 02:53:22 GMT {"ticket_id":["xxxxxxxxxxxxxxxxxxxx","xxxxxxxxxxxxxxxxxxxx","xxxxxxxxxxxxxxxxxxxx"]}
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: b07d1cfe-00ac-4c95-9e6f-fe110ff401dd 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 17:56:21 GMT Connection: close {"error_codes":[{"code":"103","message":"Invalid dst location code."}]}
エラーリスト
HTTPステータスコード | エラーコード | 内容 |
---|---|---|
400 | 001 | リクエストボディに誤りがある |
400 | 002 | 情報区分コードの値が設定されていない |
400 | 003 | 発送元拠点コードの値が設定されていない |
400 | 004 | 発送先拠点コードの値が設定されていない |
400 | 101 | 情報区分コードの値が不正である |
400 | 102 | 発送元拠点コードの値が不正である |
400 | 103 | 発送先拠点コードの値が不正である |
400 | 105 | 取得済みフラグの値が不正である |
400 | 106 | 検索範囲の始点日時の値が不正である |
400 | 107 | 検索範囲の終点日時の値が不正である |
401 | 201 | 認証用トークンによる認証に失敗した |
403 | 202 | アクセスが許可されていないユーザーのアクセスによる認可エラー |
404 | 203 | 存在しないデータにアクセスした |
405 | 206 | 指定以外のHTTPメソッドを指定された |
408 | 204 | データへのアクセスがタイムアウトした |
413 | 205 | リクエストボディのサイズが上限値を超えた |
500 | 301 | 予期せぬエラーが発生した |
500 | 303 | 予期せぬエラーが発生した |
503 | 303 | API側の不具合によるエラー |
キャッシュをさせない。(Pragma, Cache-Controlの2種類で指定)
例)Pragma: no-cache, Cache-Control: no-cache
リクエスト送受信時の通信タイムアウトは300秒(注)です。
注)これらのパラメータはユーザーによる変更はできません。変更を希望する場合はシステム管理者への依頼が必要となります。