第468回 SORACOM公式ブログ

ソラコム公式ブログ

SORACOM Beam や SORACOM Flux の開発・デバッグに使える HTTP モックサーバーを素早く作る方法 

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はソラコムが提供する「SORACOM公式ブログ」に掲載された「SORACOM Beam や SORACOM Flux の開発・デバッグに使える HTTP モックサーバーを素早く作る方法 」を再編集したものです。

こんにちは、ソラコムのテクノロジー・エバンジェリストの 松下(ニックネーム: Max)です。

IoTデバイスを開発する際、データ送信先となるサーバーの準備が迅速に整うことで、開発プロセスが格段に楽になります。例えば、データ転送サービス「SORACOM Beam」での転送先や、ローコード IoT アプリケーションビルダー「SORACOM Flux」での Webhook アクションの送信先のサーバーが 該当します。

このブログでは API の設計・テスト・モニタリングを支援するプラットフォーム「Postman」の HTTP モックサーバー(実システムに近しい動作をする模倣サーバー)機能にて、HTTP POST を受け付けて { "Your payload is": "<入力データ>" } を返す、いわゆる “Echo サーバー” を作成する方法を紹介します。

Postman とは

Postmanは、API の設計からテスト、デバッグ、モニタリング、ドキュメント作成までを一貫して支援するプラットフォームです。開発者は API リクエストを簡単に送信・検証でき、エンドポイントの動作確認やパフォーマンスのテストが効率的に行えます。また、チームでのコラボレーション機能も充実しており、複雑なAPI開発プロセスを円滑に進めることが可能です。

Postman の料金体系はサブスクリプションです。無料(Free プラン)があり、手軽に始められます。今回の HTTP モックサーバーも小規模であれば Free プランで利用可能です。継続的に利用する場合や規模を拡大する際には、有料プランの利用を検討しましょう。

HTTP モックサーバーの作成手順

Postman はドキュメントが充実しており、Postman mock server というページに HTTP モックサーバーの手順が記載(英語のみ)されています。ここではポイントを紹介します。

※ Postman のアカウント作成は https://www.postman.com/postman-account/ で行えます。済ませておいてください。

1. Postman の管理画面上に、Mock server (モックサーバー) メニューを出現させる

モックサーバーを作りたいワークスペース(アカウント作成直後であれば “My Workspace”) を開き、左のサイドバーから「ワークスペースサイドバーを設定」をクリックした後、モックサーバー を有効化します。

すると、サイドバーに “モックサーバー” が表示されます。もしすでに表示されていたら、次の手順に進みます。

2. モックサーバーを作成する

  1. サイドバーの[モックサーバー][モックサーバーを作成]とクリックしていく
    1. “モックサーバーを作成” というページが開きます
  2. “1. 新しいコレクションを作成” のタブが開いている事を確認して、[リクエストメソッド]の一覧から POST を選択する
    1. この時、POST の行が自動的に増えます(GET の行は残りますが、実際は POST のみ作られます)
    2. 増えた行に対して、その他のパラメータ(リクエスト URL、レスポンスコード、レスポンスボディ)は設定しません
    3. 以上が済んだら[次に進む]をクリックします
  3. “2. 設定” のタブが開いていることを確認して、[モックサーバーの名前]を設定する
    1. 例として “My1stMockServer” とします
    2. その他のパラメータ(環境、固定ネットワークの遅延をシミュレート、等)は設定しません
    3. 以上が済んだら[モックサーバーを作成]をクリックします

“My1stMockServer” のページが表示されたら、HTTP POST を受け取るモックサーバーの作成完了です。

3. リクエストを確認する

この時点で HTTP モックサーバーの動作を確認してみましょう。

“My1stMockServer” の右側にある[コレクションドキュメント]を開くと、cURLを始めとしたツール/言語によるリクエストサンプルが提示されています。ターミナル等で実行してみましょう。

curl --location --request POST 'https://***.mock.pstmn.io/' --data ''

リクエストを実行した後、”My1stMockServer” で[ログを更新]をクリックすると、先ほどのリクエストが確認できます( --data '' と何も設定していないので、リクエスト ボディは  “空” となっています)

4. レスポンス ボディを追加する

これだけでも十分役割を果たしますが、レスポンス ボディを設定もしてみましょう。

サイドバーの[コレクション] → “My1stMockServer” のツリーで “POST” → “デフォルト” と開いていくと、POST リクエストに対するレスポンス ボディが設定できます。

“ボディ” に以下のように指定します。

{ "your payload is": "{{$body 'payload'}}" }

その後、右上の[保存]をクリックします。設定はこの時点で反映されます。

{{$body}} というのは、Postman 固有の template helperです。詳しくはUsing template helperをご覧ください。他にも {{$timestamp}} などの動的データを返してくれる変数が存在します。詳しくはGenerating random data with dynamic variablesをご覧ください。
※未加工のPOST BODY全体を得る方法を見つけることができませんでした(2024年11月現在)

5. 再度、リクエストを確認する

以下のように送信すると、送信時に payload に設定したデータがレスポンス ボディに設定した定義でフォーマットされ返却されます。

curl --location --request POST 'https://***.mock.pstmn.io/' --data 'payload=Hello' #=> { "Your payload is": "Hello" }

これで、HTTP モックサーバーの設定もできるようになりました。

SORACOM Beam や Flux からの指定方法

SORACOM Beam の「転送先」に、Postman の HTTP モックサーバーを指定します。例として「HTTP エントリーポイント(HTTP → HTTPS)」では、以下のように設定します。URL からホスト名・ポート番号・パスを分解して入力するのがポイントです。
これで、デバイスから http://uni.soracom.io に HTTP POST すると、Postman の HTTP モックサーバーにデータ転送されます。

SORACOM Flux の「Webhook アクション」では、以下のように設定します。こちらはURLを入力します。
これで、このアクションが起動すると HTTP モックサーバーにデータが送信されます。

より高度な設定と削除

HTTP モックサーバーでのメソッドやパスの増やし方

Postman のモックサーバーは API ゲートウェイサービスのように、メソッドやパスの追加が可能です。手順は以下の通りです。

  1. サイドバーの[コレクション]→ “My1stMockServer” の三点メニュー(右側の “…” と表示されている部分) → [リクエストの追加] で、新規リクエストを追加できます
  2. “GET” となっている部分を必要な HTTP メソッドに変更(例: POST)し、右の[URL を入力するかテキストを貼り付け]となっている部分に {{url}}/foobar と入力します
  3. 最後に[保存]をクリックします

これで「POST https://***.mock.pstmn.io/foobar」で受け付けられます。

{{url}} はコレクションの変数で、変数の内容は “My1stMockServer” のページで確認できます。

削除

最後に削除の方法です。

  • サイドバーの[コレクション] → “My1stMockServer” の三点メニュー → [削除]
  • サイドバーの[モックサーバー] → “My1stMockServer” の三点メニュー → [削除]

以上2つの削除で、きれいに片付きます。

おわりに

実は SORACOM Beam には設定不要・無料で利用可能な「SORACOM Beam テストサーバー」があり、データ自体の確認はこれでも十分です。Postman の HTTP モックサーバーでは、ログの確認やレスポンス ボディの加工ができたりと、より実装に近い事が行えます。

使い分けについても SORACOM Beam や Flux を利用しておけば、デバイスに触れることなくデータ送信先を変更できるので、ぜひ利用を検討してみてください。

― ソラコム松下(Max)

投稿 SORACOM Beam や SORACOM Flux の開発・デバッグに使える HTTP モックサーバーを素早く作る方法 SORACOM公式ブログ に最初に表示されました。

過去記事アーカイブ

2024年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
2023年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2022年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2021年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月