NODE-RedのRESTAPIをバックエンドに、Delphi + TMS WEB Coreで、CURDを、ローカル環境で実行する

###はじめに
　NODE-Redは、こちらの記事を参考にしてください、ローカル環境で、SQLite3 と MySQL と PostgreSQL で基本的なCRUD操作を行うREST APIを作成を試みました
https://qiita.com/a23/items/ee564e639a127fcdb651

##### 1.　Windows10を用意、(仮想環境で1台処理でも大丈夫ですが)NODE-Red用とDelphi + TMS WEB Core用を2台用意するのが、解りやすいのかと思います

##### 2.　Delphi12トライアル　+　TMS WEB Coreで検証

##### 3.　RestDebuggerも用意しましょう

##### 4.　NODE-Redの記事と異なるところは、データベースの構造を5項目に増やしました。
----------------------------------

SQLite3
データベース　test3.db
テーブル　table tbl_1
フィールド
```
CREATE TABLE "test_tbl_1" (
	"fld_1"	INTEGER,
	"fld_2"	VARCHAR(10),
	"fld_3"	TEXT,
	"fld_4"	DATE,
	"fld_5"	NUMERIC
        PRIMARY KEY("fld_1")
);
```

MySQL8.x
データベース　test3
テーブル　table tbl_1
user: myuser
password: Passwd643  (適当に自分で決めてください)

--------------------------------------

権限付与
```
CREATE DATABASE test3;
CREATE USER myuser@'%' identified by 'Passwd643';
GRANT all privileges on *.* to myusr identified by 'Passwd643';
FLUSH PRIVILEGES;
USE test3;
```
--------------------------------------

フィールド
```![node-red2png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59472/e497f407-e3da-1f81-be4a-a01d5de3ac4d.png)

CREATE TABLE test_tbl_1 (
  fld_1  INTEGER,
  fld_2  VARCHAR(10),
  fld_3  TEXT,
  fld_4  DATE,
  fld_5  NUMERIC
        PRIMARY KEY(fld_1)
);
```
--------------------------------------
例えば、NODE-Redを、　192.168.24.103　で起動します
![node1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59472/2658212b-b0ae-c880-d4d3-128c10ec6832.png)

別の端末から、NODE-Redを、　192.168.24.103　で起動て、フローを書き込んでいきます
手順はこちらなどを、参考にしてください　https://qiita.com/a23/items/ee564e639a127fcdb651
![node-red2png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59472/a85262da-a9e5-1f7c-b422-b2f3485cfcb3.png)


別の端末から、RestDebugger　で　GET で　データを参照してみます(画像は、上記と少しデータ構造が異なりますが、ご容赦下さい)
![restde.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59472/03dce456-95ff-faf2-d18b-ddc6a3ac5304.png)

同様にTalend API Tester - Free Edition　でデータを参照できます
(この環境で、社内などのローカル環境で、簡単にモックを作成したりできます)
![Talend.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59472/bc87985f-a145-6705-64cf-be8b91ef185f.png)

#### これで、JSONデータのやり取りが可能になったを確認できたので、TMS WEB Coreでは、CRUDをこんな感じで、用意できます。
起動
![24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59472/859c028a-bd10-e08d-7109-e220a22e3d62.png)
コンポーネントの配置
![32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59472/04ec93fa-a4a3-09b9-47dc-2e8144b017db.png)
コードのイメージ(このあたりの操作は標準のDelphiでの操作です)

![34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59472/4db58b78-b0c3-21e6-2cb0-a9bc7070dc2f.png)
F9で実行すると、ブラウザ起動して、操作が可能になります
![35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59472/6b9867cf-d123-4adc-9304-ebabad4b3b0d.png)
検索を押すと、サブ画面が開くイメージを作ってみました
![37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59472/d4c85601-a2e9-4cb5-f264-68da36123e77.png)
---

###おわりに

Delphiの関数の文字列の扱いなどが従来通りで学習コストが低いのが利点。

バックエンドのデータベースのRestAPIはDelphiや他の言語でも実装できるが、NODE-Redは手軽にローコード風に実装できる。

モック作成に最適で、画面イメージは従来のデスクトップとほぼ同様。

TMS WEB CoreがDelphiにバンドルで、選択できるように記憶していますが変更となりましたでしょうか?

Delphi+TMS WEB Coreでクライアントサーバー経験者がWeb開発に挑戦し、IT業界の人手不足に一役買えるのでは。

TMS WEB Coreでのデバッグはブラウザ上で行うが、Web開発のルールを覚えることが重要で、このあたりは、入門する気持ちが大事。
--------

で、実際どうなのということで、ローカルのモックだけでなく、今回のサンプルを
https://www.workword.co.jp/
のトップページの下の方に
Delphi Advent calendar　2023/12/23
をクリックいただくと、お試しできるように、公開いたしました。

2023/12/29くらいまで、NODE-Redのサーバーがこけていないければ、お試しいただけると思います。