HTTPノードを使う(その1)

ここのところずっとNode-REDのサンプルを見ながら各ノードの使い方を確認しています。頭出しの記事はこちらをご確認ください。今回から何回かにわけてHTTP関連ノードを使ってみます。実はだいぶ前の記事「Node-REDでWebサーバを作ってみる」でHTTPノードのサンプル01は確認済みなので、残りのサンプルを見ていきます。

クエリパラメーターを扱う

最初に確認するサンプルは、「読み込み > サンプル > flows > node-red > network > http > 02 - Handle query parameters」です。クエリパラメータの扱い方を確認できます。


まず、上半分のフローです。エンドポイント「http://localhost1880/hello-query」にてHTTPのGETリクエストを待ち受けます。Templateノードでは「{{req.query.name}}」の形式でクエリ内の「name」パラメータにアクセスして、値をHTMLに埋め込んでHTTP responseを返しています。


続いて下半分のフローでは、上半分のフローで待ち受けているエンドポイントに対してHTTPリクエストを送信しています。リクエストではクエリパラメーター「name」に値「Nick」を指定しています。そして、HTTPレスポンスをDebugノードで出力しています。

フローを実行すると、以下のログが出力されます。さきほどの「{{req.query.name}}」が値「Nick」に置き換わっていますね。

URLパラメータを扱う

続いて、URLパラメータを扱う方法を確認します。確認するサンプルは、「読み込み > サンプル > flows > node-red > network > http > 03 - Handle URL parameters」です。さっきと似ていますが、今度はクエリストリングではなく、URLの一部をパラメータ化して扱っています。


さきほどのサンプルと同じく、上半分のフローはHTTPのリクエスト待受とレスポンスの構築を行っています。http inノードでは「:name」という形式で、URLの一部をパラメータ化しています。Ruby on RailsなどのWebアプリケーションフレームワークのRouter系機能でよく見る形式です。これで、Node-REDがHTTPリクエストを受信すると、クエリパラメータ内の「name」の値(Nick)にアクセスできます。


Templateノードでは「{{req.params.name}}」の形式でURLパラメータにアクセスしています。


続いて下半分のフローでHTTPリクエストを送信しています。アクセス先URLは「http://localhost:1880/hello-param/Nick」です。もうおわかりかと思いますが、「{{req.params.name}}」の部分が「Nick」に置き換わります。


まとめ

ここまで確認したことをまとめます。
  • クエリパラメーターには「{{req.query.<パラメーター名>}}」でアクセスできます
  • URLパラメーターには「{{req.params.<パラメーター名>}}」でアクセスできます
次回に続きます。

コメント

このブログの人気の投稿

Joinノードを使う(その1)

Execノードを使う

Joinノードを使う(その4)