LoginSignup
3
1

【HULFT Square】APIで注文書ファイルをアップロードし、データベースまで連携!

Last updated at Posted at 2024-04-12

はじめに!

本記事では "ゆる~く" HULFT Squareのご紹介をします。

HULFT Squareについてはこちらの公式HPへ。
API公開機能(APIマネジメント)についてはこちらのQiitaが分かり易いです。

以下内容はご参考となりますので、実際にご検証、マニュアルのご参照をお願い致します。

きっかけ

とあるお客様から・・・
HULFT SquareへAPI経由でファイルを送り、データベースまで連携できる?と
ご質問を頂きました。
HULFT Squareには作成したプロジェクト(処理)をAPIとして
公開する機能(APIマネジメント)があります。
この機能を使い、周辺システムがAPIをコールしたらデータベースまで
連携して欲しいとのこと。
APIマネジメントを活用したいというお声を頂くことが多いので記事にしてみました~

ざっくりこんなイメージです。

画像1.png

こんな感じで作っていく

1.プロジェクト(ETL処理)の作成
  ※上図②,③のイメージ
   ファイルデータをHULFT Sqaureのストレージへ書き込み、
   データベースへ連携する処理はここで作る。

2.APIプロジェクト(特定のHTTPメソッドが来たらどのプロジェクトを動かすか)の作成
  ※上図①のイメージ
   この部分でファイルデータとファイル名を変数(スクリプト変数)に格納。

3.APIクライアント(接続制御設定)の作成
  ※どのユーザのトークンを使用してリクエストが可能か、IPフィルタの設定。

4.APIジョブの設定
  ※手順2,3を指定します。この設定をするとAPIエンドポイントが作られる。

1.プロジェクトの作成

今回作成したプロジェクトはこちら
スクリプト全体像.png

この様にスクリプト変数も作成しています。
プロジェクト名_スクリプト変数.png
「ファイル名_string」はAPIに添付しているファイル名を格納し、
「データ_binary」はファイルデータを格納します。格納設定はAPIプロジェクトの作成で。
「現在日時_yyyyMMdd」はファイル名の前に処理実行時の名前を付けるのに使用します。

赤枠内でファイルをストレージに格納
スクリプト全体像2.png

青枠内で赤枠内で出力したストレージのファイルを読み込みデータベースに書き込みます。
スクリプト全体像3.png

データ格納(mapping処理)では以下の様にファイルシステム書き込みに対して値を代入しています。
スクリプト内_データ格納.png

上図右側のストレージ格納(ファイルシステム書き込み)へ代入する値はこちらの公式マニュアルをご覧ください。

今回は上記のmapping内で現在日時を取得し、スクリプト変数(現在日時_yyyyMMdd)に格納した値をファイル名に使用しています。

その他のコンポーネント(アイコン)処理は今回は割愛します。
ご質問ありましたら本記事にご質問ください~

2.APIプロジェクトの作成

今回のポイントはここ!
こんな感じで設定します。
APIプロジェクト1.png

ファイルをAPIに添付するので
リクエスト本文のコンテンツタイプは「マルチパート/フォームデータ」を指定。
パラメータ名はAPIクライアント側でも使いますので任意の値。
最初のスクリプト変数にはデータ部(今回はファイル)を格納するスクリプト変数を指定。
テキストかファイルを選べますので今回は「ファイル」を選択。
最後のスクリプト変数にはファイル名を格納するスクリプト変数を指定。

レスポンス本文はお好きに!

3.APIクライアントの作成

前述の通り接続制御の設定、平たくいうと(?)セキュリティの設定です。
APIクライアント1.png

アクセスキーについて
HULFT Squareではユーザ毎にアクセスキーを発行できます。
ユーザ毎のアクセスキーを使用してAPIリクエストを送信しますので、
APIクライアントではユーザを指定します。

4.APIジョブの作成

さてやっとここまできました。
最後に「2.APIプロジェクトの作成」と「3.APIクライアントの作成」で作成した設定をジョブとして指定します。
こんな感じ。
APIジョブ1.png

さいごに

実際にAPIから実行している動画もつけようかと思いましたが力尽きましたので

Postmanからコールして動かします。
こんな感じ!!

以上!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1