json-serverとは何?
expressベースのAPIモックサーバーです。
通常のAPIモックサーバーとしてJSONを定義するだけで簡単に使えます。
また、DBを内蔵しており、POSTなどの更新にも対応しているようです(未使用)
追記:直接、db.jsonを書き換えるようです。
例えば以下のようなJSONファイルを用意するだけでモックサーバーが簡単に作れます。
db.json
{
"posts": [
{ "id": 1, "title": "json-server", "author": "typicode" }
],
"comments": [
{ "id": 1, "body": "some comment", "postId": 1 }
],
"profile": { "name": "typicode" }
}
CLIで以下のコマンドを叩くことでモックサーバーが起動します。
$ json-server --watch db.json
但し、後述しますが、CLIにはバグがあるため、モジュールを書くのが無難です。
Tips
複数階層のルートを指定したい
そのままだと指定できないため、rewriterを利用して、リクエストがあったルートを書き換えます。
例:/hoge/barへのアクセスを/barへ流す
server.use(jsonServer.rewriter({
"/hoge/bar": "/bar",
}))
POSTメソッドなどでJSONを返却したい
そのままだと更新系APIとして動作してしまうため、midddlewareでGETメソッドへ置き換えます。
server.use(middlewares)
server.use((req, res, next) => {
if (req.method === 'POST') {
req.method = 'GET';
}
next();
});
CLIからmiddlewareを指定しても機能しない
公式にもサンプルが載っているのにCLIからはバグで使えません。
モジュールを書く必要があります。