enebular で API から来たデータをデータストアに保存する
データストアの準備
今回使うプロジェクトで ee-connect-v2 のプライベートノードをインポートしておきます。
プロジェクトのデータストアをクリックします。
右下の+ボタンをクリックして新しくデータストアを作成します。
カスタム設定をクリックして次へボタンをクリックします。
テーブル名はそのまま使って、メインキーを timestamp にして作成ボタンをクリックします。
テーブルが作成されました。
テーブル設定で、テーブル ID・実行環境からのアクセスのON・エディタからのアクセスのONを確認しておきます。
今回の Discover Flow
今回の Discover Flow はこちらです。
https://enebular.com/discover/flow/e693bfd4-bdd6-4548-b46c-2076e42dd22e
インポートボタンをクリックして、今回作業するプロジェクトを選択してプロジェクトにインポートします。
インポートできたら編集ボタンをクリックして Web エディタを開きます。
「DSデータ保存」ノードをダブルクリックしてプロパティを表示します。
プロパティが開いたらデータストア設定 table1 を確認し、右にある鉛筆ボタンをクリックします。
テーブル ID の項目を確認します。いまは空になっています。
今回扱うデータストアのテーブルで、設定を表示してテーブル ID をコピーします。矢印で示したボタンでコピーできます。
コピーしたテーブル ID を先ほどのテーブル ID の項目に入力して更新ボタンをクリックします。
データ保存のノード編集画面では完了をクリックします。ワークスペースの右上の保存ボタンをクリックして、フローをデプロイします。
フローの仕組みの紹介
「データ保存内容設定」の change ノードの仕組みです。
データストアが保存するために格納する msg.item に URL にくっついているパラメータが msg.payload に入っているので message 値を設定しています。
最後の timestamp はデータストア上でメインキーとしても使っていて、タイムスタンプ値を $string($millis())
という JSONata 式で「文字列のタイムスタンプ値」でいれることでユニークな ID としても使えるようにしています。
データストアのデータ保存を担当する「DSデータ保存」ノードの仕組みです。
さきほどデータストア設定でテーブル ID を設定すると、このノードでデータストアへのデータ保存ができます。入力の保存データの項目はデフォルトの msg.item のまま使っています。
なお、データ保存の結果は msg.payload にかえってきます。
サーバー URL 把握
これで enebular によるサーバーができました。
今回は、この一時的に使っているエディタそのもののサーバー URL で試してみます。
右上の i というアイコンをクリックします。
URL をテキスト選択してコピーします。
動かしてみる
ブラウザで別タブを開いて API URL にアクセスしてみます。API URL はさきほどのサーバー URLに /api/message?message=12345
を加えたものです。message=12345
部分が API に実際にデータを送って保存する message 値です。
もし https://hogehoge123456789.herokuapp.com/
がサーバー URL なら https://hogehoge123456789.herokuapp.com/api/message?message=12345
となります。
このようにデータストアで保存された結果が表示されます。うまくデータが保存されました。
今回データを保存するデータストアのテーブルを確認すると、先ほど投稿したデータが表示されていることも確認できます!