インプット基本情報を定義しよう
クエスト概要
連携元システムの連携方式に従って、取込のためのより詳細な要件を定義します。インプット基本情報は、連携元として指定した連携方式に従って定義するため、 以下の内、どちらの連携方式を指定するかによって定義する内容は変わります。
- ファイルストレージサービス、またはプロトコル - ファイル(FTPS・SFTP)
- クラウドアプリケーション、またはプロトコル - WEBAPI(HTTP・HTTPS)
※連携方式が「クラウドアプリケーション・プロトコル - WEBAPI(HTTP・HTTPS)」の場合、APIリファレンスを元に定義する必要があるため、連携システムのご担当者様にお問い合わせの上、事前にAPIリファレンスを準備して下さい。
用語一覧
このクエストで登場する用語を解説します。
以下、どちらの連携方式を指定するかによって定義する内容は変わります。
- ファイルストレージサービス、またはプロトコル - ファイル(FTPS・SFTP)
- クラウドアプリケーション、またはプロトコル - WEBAPI(HTTP・HTTPS)
連携方式で「ファイルストレージサービス」または「プロトコル - ファイル(FTPS・SFTP)」を選択した場合
ファイル形式
連携元システムから取り込むファイルの形式を選択します。以下の情報を参考に適したものを選択して下さい。
- csv/tsv
カンマ区切り/タブ区切りのファイル - json
JavaScriptのオブジェクトの書き方を元にしたファイルで、WebAPIのデータ交換フォーマット - ファイル
連携元システムからPDFや画像等のバイナリデータを送信したい場合に選択
文字コード
文字コードとは、連携するファイルの文字コードを定義します。
連携されるデータの文字コードがSJISなのに、ここの定義でUTF-8としてしまうと連携するデータが文字化けしたりする可能性があります。
サンプルの連携データがある場合はテキストエディタで開けば文字コードを確認することも可能ですし、WEBAPIで連携するデータであれば、基本的にはそのシステムの文字コードと同様かと思いますので、
分からない場合はシステムのご担当者様にご確認ください。
S3オブジェクト指定方法
※連携方式でファイルストレージサービス(Amazon S3)を選択した場合に定義します。
S3オブジェクトの指定方法は、S3キーと密接な関係があります。S3キーで指定したパス情報と完全に一致するか、前方一致で一致したファイルを全て取込対象とするか、を定義します。
例えば取込対象のファイルが「sample_20230901.csv」というように日付を含んだファイル名など、固定で定義できない場合や、特定のフォルダ以下のファイルを全て取込したい場合は、キー名称の前方一致、とする必要があります。
キー名称の完全一致
1件のオブジェクトが取れることを期待する場合は、キーのうちオブジェクト部を拡張子込みで記載。
(例 sample-folder/sample.csv)キー名称の前方一致
複数のオブジェクトが取れることを期待する場合は、キーのうちオブジェクト部を拡張子なしで記載することで前方一致で取得。(例 sample-folder/sample とすると、sample1.csv, sample2.csv..のように sample% のオブジェクトが対象となる)
S3キー
※連携方式でファイルストレージサービス(Amazon S3)を選択した場合に定義します。
S3キーとは、Amazon S3の中でのファイルパスのようなものです。ファイルパスというと、「C:¥フォルダ名¥sample.csv」のように表現されますが、ここで定義するS3キーは「フォルダ名¥sample.csv」に該当するところを定義します。
バケット名は接続情報で定義するので、バケット以下のファイルパスを指定してください。
確認方法1
AWSのマネジメントコンソール上で Amazon S3>バケット>sample-bucket>sample-folder>input/ オブジェクト:sample.csv となっていた場合のS3キーは sample-folder/input/sample.csv と指定する必要があります。確認方法2
AWSのマネジメントコンソールにて、対象のファイルを開いたURLを確認し https://s3.console.aws.amazon.com/s3/object/sample-bucket?region=ap-northeast-1&bucketType=general&prefix=sample-folder/input/sample.csv となっていれば、prefix=に指定されている sample-folder/input/sample.csv がs3キーになります。
ファイルパスの指定方法
※連携方式でプロトコル - ファイル(FTPS・SFTP)を選択した場合に定義します
連携元システムから取り込むファイルについて、取込元のフォルダパスを指定して、ファイルの配置場所を定義します。
以下の通り、完全一致、前方一致の方法から選択して下さい。
完全一致
ファイル名に完全合致するファイルのみをインプットデータとして扱います。完全一致の場合は拡張子込みのファイル名にする必要があります。
例:input/sampleif001/input_sample.csv前方一致
ファイル名が前方一致するファイルをインプットデータとして扱います。複数合致するものがある場合は、1回のI/F処理で複数処理されます。
例:sample-folder/sample とすると、sample1.csv, sample2.csv..のように sample% のオブジェクトが対象となる
ファイルパス
※連携方式でプロトコル - ファイル(FTPS・SFTP)を選択した場合に定義します
ファイルパス指定方法に沿ったファイルパスを記載して下さい。
例(完全一致):input/sampleif001/input_sample.csv
例(前方一致):input/sampleif001/input_sample
バックアップ利用
ファイル連携する場合、連携処理したファイルはそのままにしておくと、次のI/F処理実行時にも処理対象となってしまうため、別のフォルダに移動させるケースがあります。処理したファイルを移動させて、次回実行時に処理対象としたくない場合は、利用する、 そのままにしておきたい場合は、利用しない、にしてください。
バックアップ移動先フォルダパス
バックアップ移動先フォルダパスは、バックアップを利用する場合の移動先のフォルダパスを指定します。
先ほど指定したS3キーとは違って、ファイル名の指定まではできません。
例えば、処理するファイルが入っている「sample-folder」以下の「bk」フォルダに、処理したファイルは移動させたい場合、「sample-folder/bk」としましょう。
以下内容はファイル形式がCSV/TSVの場合のみ定義します。
区切り文字
「区切り文字」とは、アウトプットファイル内のデータをテキストファイル形式で保存する際に、項目(フィールド)を区切る記号として使用される文字のことです。
taiasでは区切り文字として、csvファイルで利用されるカンマや、tsvファイルで利用されるタブ、半角スペースをサポートしています。
連携先のシステムの取込仕様に合わせて、アウトプットとして出力されるファイルの「区切り文字」を選択しましょう。
ヘッダー行の有無
ヘッダー行の有無は、CSVファイルの中身に、カラム情報となるヘッダ行が含まれるか否かを定義します。 CSVファイルの1行目からデータとして扱うか、1行目はヘッダ行として2行目からデータ行として扱うかの違いとなります。 ヘッダ有にすればヘッダー付きのアウトプットファイルが、ヘッダ無しにすればヘッダーなしのファイルが作成されます。 連携先のシステムの取込仕様に合わせて、アウトプットとして出力されるファイルの「ヘッダー行の有無」を選択しましょう。
くくり文字
くくり文字は、CSVのデータが「"aaa","bbb"」のようになっている場合の「"」を指し、区切り文字として指定したカンマやタブを文字情報として出力したい場合に、利用します。
例えば「このリンゴは10個で1,500円です」という文字列情報を普通にCSVファイルとして解釈した場合、
「このリンゴは10個で1」と「500円です」に項目が分かれてしまいます。
これを回避するために「”このリンゴは10個で1,500円です”」と両端にくくり文字を入れることで、区切り文字を含んだ一連の文章を文字情報としてシステムが認識できるようになります。
taiasでは、半角ダブルクォーテーション「”」や半角クォーテーション「’」の「くくり文字」をサポートしています。
連携先のシステムの取込仕様に合わせて「くくり文字」を選択しましょう。くくり文字が不要であれば「なし」を選択して下さい。
改行コード
「改行コード」とは、ファイル内で文書が改行することを指示するコードです。
OSによって異なり、WindowsではCR+LFが利用されることが一般的です。
連携先のシステムの取込仕様に合わせて「改行コード」を選択しましょう。taiasでは、「CR+LF」「CR」「LF」の「改行コード」をサポートしています。
エスケープ文字
「エスケープ文字」とは、くくり文字そのものを記載したいときに、くくり文字の直前に使用する文字です。
例えばダブルクオテーションマーク「"」そのものを表現したい時は、「"」の直前にエスケープ文字をいれます。
この時エスケープ文字として「\」を入れる場合は「\"」、「/」を入れる場合は「/"」と記載します。
連携先のシステムの取込仕様に合わせて「エスケープ文字」を定義しましょう。
連携方式で「クラウドアプリケーション」 「プロトコル - WEBAPI(HTTP・HTTPS)」を選択した場合
プロトコル
プロトコルとは、Webサーバーと通信するための通信規則を指し、HTTPSとHTTPの違いは、通信が暗号化されるか否かの違いです。
暗号化されていれば「HTTPS」、暗号化されていなければ「HTTP」です。I/Fで連携するデータは基本的にはセキュアになっている必要があると思いますので特別な事情がない限りはHTTPSにすべきです。HTTPSにはSSLサーバー証明書が必要です。
連携したいシステムへのURLがhttpから始まればHTTPをhttpsから始まるのであればHTTPSとなります。
例:
http://taias-sample.com/ →HTTP
https://taias-sample.com/ →HTTPS
フォーマット形式
連携元システムから取り込むファイルの形式を選択します。以下の情報を参考に適したものを選択して下さい。
利用したいAPIが何なのか判断できない、APIリファレンスがどこにあるのか分からない、という場合は連携システムのご担当者様に問い合わせて下さい。
application/json
json形式のデータの場合csv/tsv
csv形式(tsv含む)のデータの場合
HTTPリクエストメソッド
HTTPリクエストメソッドとは、ファイル形式(Body形式)と同様にWEBAPIのリクエストにのせるものの1つで、リクエスト先に対してどのような処理をお願いするのか、を示すものとなります。GETは取得、POSTは登録、PUTは更新、というように一般的には決まっていますが、必ずしもそうなっていないAPIは多数ありますので、APIリファレンスを確認して定義するようにしてください。
(連携用のWEBAPIが用意されているのであれば、仕様書にはHTTPリクエストメソッドは明記されていると思いますのでご確認ください。
仕様書もない、という場合は連携システムのご担当者様に、「I/Fで連携するWEBAPIのHTTPリクエストメソッドは、GET,POST,PUT,PATCHのいずれになるか」とご確認ください)
文字コード
文字コードとは、連携するファイルの文字コードを定義します。
連携されるデータの文字コードがSJISなのに、ここの定義でUTF-8としてしまうと連携するデータが文字化けしたりする可能性があります。
サンプルの連携データがある場合はテキストエディタで開けば文字コードを確認することも可能ですし、WEBAPIで連携するデータであれば、基本的にはそのシステムの文字コードと同様かと思います。文字コードについてはAPIリファレンスに明記されていないこともあり、その場合はUTF-8であることが多いですが、分からない場合はシステムのご担当者様にご確認ください。
URLパス
URLパスではURLの内のプロトコルとホスト(ドメイン)以下のパスを定義します。
APIリファレンスでは、「endpoint(エンドポイント)」という記載がされているケースも多いです。
taiasでは環境毎にI/F定義をしないで済むように、環境依存情報は切り出して定義することができるようにしています。
そのためここでは環境に依存しない部分のURLのパスを定義します。
例:
(1) APIのURLが「https://taias-sample.com/sample/if-data/」 の場合
URLパスは「sample/if-data/」となります。
また、URLパスには、URLの一部に{}を用いて変数として定義することができます。変数を用いることで、URLの一部に日付を入れたい、入力リソースの値を動的に入れたい、ということが可能になります。ここでURLパスに{}を用いたURLを定義した場合、{}の変数に対して、後続のクエストのマッピングで具体的にどういう値にするのか設定します。
例:別の入力データのIDを利用して取得するAPIのURLを定義したい場合
URLパス:https://taias-sample.com/sample/{id}
↓
後続クエストのマッピング定義にて、{id}に対して、インプットのデータをマッピング定義することで、
別のインプットの値を利用したURLで都度データを取得することができます。
ページングの利用有無
連携元のAPIから1回のリクエストで取得できるレコード数に上限がある場合は、ページングを利用して全件取得します。
連携元のAPIから1回のリクエストで全件取得できる場合は、利用する必要はありません。
Web APIのページングとは、大量のデータを扱うAPIにおいて、一度に全てのデータを取得するのではなく、複数のページに分割して取得することで、効率的にデータの取得ができる手法です。
例えば、あるWeb APIで1000件の商品情報を取得する場合、すべての商品情報を一度に返すと、ネットワークの帯域幅やサーバーの処理能力に負荷をかける可能性があります。
そのため、ページングを用いて、例えば10件ずつに分割して10ページに分けて返すことができます。
ページングの指定方法
ページングの指定方法を以下から選択し、それに沿った内容を定義します。
開始位置指定
クエリパラメータに開始位置、取得件数を変数として利用することができ、レコードが取れなくなるまで開始位置をずらして取得を繰り返します。1回のリクエストで取得する件数を指定することで、取得される件数が0件になるまで(全件取得できるまで)リクエストを繰り返し実行します。
開始位置指定の場合は、このようなパラメータを指定されることが多いです。
例:https://sample/api/employee?offset=1&limit=100
こちらのページング指定方法を選択した場合、クエリパラメータに、デフォルトで、
キー=offset.値={offset}
キー=limit.値={limit}
が補完されますので、キーの名称はAPIの仕様に合わせて適切な名称に変更して下さい。
{offset}と{limit}は、開始位置の初期値と上限値で決めた値に従って、システムで自動計算されます。ページ番号指定
クエリパラメータにページ番号、取得件数を変数として利用することができ、レコードが取れなくなるまでページ番号を繰り上げて取得を繰り返します。
ページ番号指定の場合は、このようなパラメータを指定されることが多いです。
例:https://sample/api/employee?page=1&limit=100
こちらのページング指定方法を選択した場合、クエリパラメータに、デフォルトで、
キー=page.値={page}
キー=limit.値={limit}
が補完されますので、キーの名称はAPIの仕様に合わせて適切な名称に変更して下さい。
{page}と{limit}は、ページ番号の初期値と上限値で決めた値に従って、システムで自動計算されます。
残りの結果取得用のURLを利用
残りのレコード取得用のURLをAPIのレスポンスから取得して全てのレコードを取得できるまで繰り返します。 URL指定を利用することで、ページ番号や1ページあたりのデータ件数を含めた完全なURLを作成し、それを利用してページング処理を行います。残りの結果取得用のトークンを利用
APIのレスポンスの残りの結果を取得するためのトークンをクエリパラメータに変数として利用することができます トークンとは、ページングに必要な情報を保持し、次に表示すべきデータの位置を示す値のことです。トークンを利用することで、一定量のデータを取得した後でも、その続きからデータを取得することができます。 また、そのトークンを残りの結果を取得するためのリクエストのクエリパラメータに何というキーで渡せばよいか、についても定義します。
残りの結果取得用のトークンを利用の場合は、このようなパラメータを指定されることが多いです。
例:https://sample/api/employee?nextToken=XXXXXXXXXX
- 開始位置指定
上限値
1回のリクエストで取得するデータ件数の上限を定義します。
上限値がlimitで表現される場合、limit=の後に続く値を指定します。
開始位置の初期値
データの取得開始位置を示す値を定義します。
開始位置の変数がoffsetの場合、offsetの初期値を指定します。
(通常は0か1のいずれかです。)
offsetで指定した初期値に、一回のリクエスト毎に、上限値で指定した値を加算して、リクエストを繰り返します。
- ページ番号指定
ページ番号の初期値
データ取得をする際のページ番号の初期値を定義します。
ページ番号がpageで表現される場合、page=の後に続く値を指定します。
(通常は0か1のいずれかです。)
一回のリクエスト毎に、page番号を1ずつ繰り上げながらリクエストを繰り返します。
上限値
1回のリクエストで取得するデータ件数の上限を定義します。 上限値がlimitで表現される場合、limit=の後に続く値を定義します。
- 残りの結果取得用のURLを利用
残りの結果を取得するURLが入っているResponseBodyのプロパティ
URLはWEBAPIを呼び出したResponseに入ってきますので、ResponseBodyのなんというプロパティで入っているのかについて定義します。
- 残りの結果取得用のトークンを利用
残りの結果を取得するTokenが入っているResponseBodyのプロパティ
トークンはWEBAPIを呼び出したResponseに入ってきますので、ResponseBodyのなんというプロパティで入っているのかについて定義します。
クエリパラメータの指定有無
実行するAPIにクエリパラメータを指定したい場合は、指定する、を選択して下さい。
クエリパラメータ
Web APIのクエリパラメータとは、Web APIを使ってデータを取得する際に、URLに追加する情報のことです。
例えば、ある商品の情報を取得したい場合、URLにクエリパラメータを追加することで、その商品の情報だけを取得することができます。 クエリパラメータは、URLの末尾に「?」を付け、その後に「キー=値」という形式で追加されます。複数のクエリパラメータを使う場合は、「&」で区切ります。 例えば、以下のようなURLがあるとします。
http://example.com/api/products?category=food&maxPrice=1000
このURLでは、クエリパラメータ「category=food」と「maxPrice=1000」が指定されています。
これにより、カテゴリが「food」で、価格が1,000円以下の商品だけを取得することができます。
API毎に利用可能なクエリパラメータは異なるので、APIリファレンスを見ながら必要なクエリパラメータを定義して下さい。
クエリパラメータに動的な値を指定したい場合は、(実行日の当日、前月を指定したい、等)変数として定義する必要があるため、
{}でくくった文字列を値に指定してください。{}でくくった文字列は、変数として扱われ、後続のクエストのマッピング定義にてその変数に対してどの関数を利用するのか等、具体的な定義ができます。
リクエストヘッダパラメータ
リクエストヘッダは、WebAPIにリクエストを送る際に、HTTPリクエストに含める情報のことです。
ブラウザの種類やバージョン、言語、リクエストがどのページから来たか、クッキー情報などが含まれます。
ここではAPI毎にHTTPリクエストを投げる際のリクエストヘッダパラメータを定義します。
リクエストヘッダは、トークンの指定が必要なケースがありますが、トークン自体はテスト環境と本番環境など、接続する環境毎に異なる値になります。ですので、I/F定義で定義するリクエストヘッダは、APIリファレンスに記載されている指定が必要なリクエストヘッダパラメータから、環境に依存せずに決められるものだけを定義するようにしてください。