dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

TypeScript での json-server を利用したモックサーバ

2023-03-18 14:38:57 | Node.js
TypeScript で json-server を利用したモックサーバを作成する方法のメモ。

■インストール
npm install json-server
npm install --save-dev @types/json-server

■db.json
{
  "path1": [
    {"id": "1_1", "key": "key1_1", "value": "value1_1"},
    {"key": "key1_2", "value": "value1_2"}
  ],
  "path2":
    {"key": "key2_1", "value": "value2_1"}
}

■モックサーバ(test_server.ts)
import * as JsonServer from 'json-server';

const server = JsonServer.create();
const router = JsonServer.router('db.json');
const middles = JsonServer.defaults();

server.use(middles);
server.use(router);

server.listen(3000, () => {
  console.log('json-server starts');
});

■モックサーバ実行
$ ts-node test_server.ts

■モックサーバの動作確認
$ curl http://localhost:3000/path1
[
  {
    "id": "1_1",
    "key": "key1_1",
    "value": "value1_1"
  },
  {
    "key": "key1_2",
    "value": "value1_2"
  }
]


json-server によるモックサーバ

2023-03-18 12:53:32 | linux
json-server で API のテスト用のモックサーバを動かすことができます。

■インストール
json-server は npm でインストールします。
npm install -g json-server


■データファイル
db.json ファイルに返却データを作成します。
{
  "path1": [
    {"id": "1_1", "key": "key1_1", "value": "value1_1"},
    {"key": "key1_2", "value": "value1_2"}
  ],
  "path2":
    {"key": "key2_1", "value": "value2_1"}
}


■json-server の実行
上記の db.json を指定して json-server を実行します。
json-server db.json


■確認1
path1 を指定すると path1 に指定したデータが返却されます。
$ curl http://localhost:3000/path1
[
  {
    "id": "1_1",
    "key": "key1_1",
    "value": "value1_1"
  },
  {
    "key": "key1_2",
    "value": "value1_2"
  }
]

json-server には以下のようにログが出力されます。
GET /path1 200 37.859 ms - 127


■確認2
path1 のデータの id の値の 1_1 を指定すると、id に対応するデータが返却されます。
$ curl http://localhost:3000/path1/1_1
{
  "id": "1_1",
  "key": "key1_1",
  "value": "value1_1"
}


json-server には以下のようにログが出力されます。
GET /path1/1_1 200 8.266 ms - 59