HTTPノードを使う(その1)
ここのところずっとNode-REDのサンプルを見ながら各ノードの使い方を確認しています。頭出しの記事はこちらをご確認ください。今回から何回かにわけてHTTP関連ノードを使ってみます。実はだいぶ前の記事「Node-REDでWebサーバを作ってみる」でHTTPノードのサンプル01は確認済みなので、残りのサンプルを見ていきます。
クエリパラメーターを扱う
最初に確認するサンプルは、「読み込み > サンプル > flows > node-red > network > http > 02 - Handle query parameters」です。クエリパラメータの扱い方を確認できます。
続いて下半分のフローでは、上半分のフローで待ち受けているエンドポイントに対して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.<パラメーター名>}}」でアクセスできます
次回に続きます。
コメント
コメントを投稿