はじめに
本記事では "ゆる~く" HULFT Squareのご紹介をします。
HULFT Squareはセゾンテクノロジーが提供する国産iPaaSです。
以下内容はご参考となりますので、実際にご検証、マニュアルのご参照をお願い致します。
また弊社サポートへお問い合わせいただいても
お答えできない場合がございます🙇
是非コメント欄でご意見いただければと幸いです。
きっかけ
とあるお客様(複数社様)とお話をしている中で
在庫データをハンディからAPI経由で取得したいと。
非常にiPaaSらしい使い方かもしれません。
もちろんこの仕組みはAWS API GatewayとLambdaを
統合して作成することは可能です。
ただし今回はこれをHULFT Squareで作ることで、
(今回は作り込みませんが)APIでデータを返す前に加工変換処理をノーコードで追加
することができます。
その他に処理完了時のメール通知やslack通知も可能です。
今回はやってみた記事なので、APIでDBの在庫情報を
じゃんじゃか取得するだけにしようと思います。
今日やることイメージ
作っていった順番に解説していく~~
RDSにてテーブル作成
今回はRDS PostgreSQL 15を利用しています。
PL/pgSQLにてテーブル作成しました。
-- テーブルの作成
CREATE TABLE stock (
ShohinCd text PRIMARY KEY,
Zaiko bigint,
OrosiKakaku bigint,
DeliveryDate date
);
-- データの挿入
DO $$
DECLARE
i int;
shohin_cd text;
zaiko bigint;
delivery_date date := CURRENT_DATE + INTERVAL '3 days';
BEGIN
FOR i IN 1..10000 LOOP
shohin_cd := LPAD(i::text, 5, '0');
zaiko := FLOOR(RANDOM() * 90 + 10)::bigint; -- ランダムな2桁の数字
INSERT INTO stock (ShohinCd, Zaiko, OrosiKakaku, DeliveryDate)
VALUES (shohin_cd, zaiko, 500, delivery_date);
END LOOP;
END $$;
こんな感じで10000レコードできました。
- 商品コード(shohincd)は00001〜10000まで連番で作成
- 在庫数(zaiko)はランダムな2桁の数字
- 卸値(orosikakaku)は全て500
- 配達日(deliverydate)は全てデータ入力日から3日後を設定
HULFT Squareの処理作成
RDSに対してSELECTをかけ、XML変換(マッピング)にて
テーブル型からXML形式のデータへ変換しております。
API Client(今回はApidog)からHULFT Squareへリクエストを投げると
↑のスクリプトが動きます。
つまりHULFT SquareのAPIマネジメント機能では
皆様が作成された固有の処理をAPIとして公開できます。
もちろんセキュリティ設定(IPフィルタ・Bearer認証)も可能です。
APIマネジメントの設定方法は
こちらのQiita記事や公式マニュアルをご確認ください。
Apidogの設定
細かい設定は他の方にお任せするとして。
(※弊社メンバーもQiita記事書いてました。)
今回はクエリパラメータに格納する値を動的に変更しますので、以下の設定をしています。
半年ほど前にApidogのDiscordで教えて貰った内容になります。
今はもっと簡単な方法があるかもです。
まずクエリパラメータに
{{paddedNumber}}という変数を設定します。
let randomNumber = Math.floor(Math.random() * 10000) + 1;
let paddedNumber = randomNumber.toString().padStart(5, '0');
pm.variables.set("paddedNumber", paddedNumber);
これで設定は以上です。
(だいぶ端折りましたが・・・)
こんな感じで動きますの
在庫データをAPIでじゃんじゃか取得するぞ
— さんまの塩焼き (@sanmashioy4ki) December 18, 2024
DB:RDS for PostgreSQL 15
ETL&API Gateway:HULFT Square
API Client :Apidog pic.twitter.com/ojX6SaxwSR
以上!