LoginSignup
6
3

More than 3 years have passed since last update.

JSONを返すMockサーバーをシェルからサクッと建てる

Last updated at Posted at 2020-08-12

JSONのレスポンスを返すサーバーが急に必要になったら...

ncコマンドを使ってMockサーバーを建てることができます🏗🗼
(Macとかだとncコマンドはデフォルトで入っていたりします。)
余計なライブラリ等入れたりしないでモックサーバー建てたい場合にかなり便利に使える方法をご紹介します!

Step1. JSONを用意する

下記のようなJSONの内容のファイルを用意します。

response.json
{
  "text": "Hello World!",
  "status": 200,
  "error": null
}

Step2. コマンド実行

上記のファイルを指定するように下記のコマンドを実行します。

$ bash -c "trap exit INT; while :; do (echo -e HTTP/1.1 200 OK\n;echo -e Content-Type: application/json; echo; cat response.json) | nc -l 8080; done"

コマンドの内容解説

① httpレスポンスを返すコマンドです。(8080はポート番号の指定です)

nc -l 8080

ncコマンドで返す内容をパイプで渡します

echo -e HTTP/1.1 200 OK\n;echo -e Content-Type: application/json; echo; cat response.json

nc コマンド自体は1回レスポンスを返すとプロセス終了してしまうので、何回も実行されるようにします

while :; do <実行したいコマンド>; done

④ Ctrl-cでプロセスを止められるようにします

bash -c "trap exit INT; <実行したいコマンド>"

(trap exit INT; でCtrl-c (SIGINT)を受け取って、プロセスを終了するようにしますが、bash -c で実行するようにして子プロセスで実行するようにして、そのプロセスを終了させるようにします。)

Step3. ブラウザでアクセスしてみる

ncコマンドでportを8080で指定したのでhttp://localhost:8080でアクセスします。

スクリーンショット 2020-08-12 22.19.16.png

(Chrome拡張のJSON Viewerの表示になっています)

ブラウザからも確認できたので、あとは開発中のシステムからアクセスしてみたりして利用できます🏄‍♂️
(利用が終わってサーバーを止めるときはCtrl-cで止めましょう。)

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3