JsonServer is なに?
- APIモックツール。
使い方
- Node.jsを入れる
- コマンド試してバージョンでてくればインストール成功
-
node --version
、npm --version
-
- Json-serverをローカルにいれる
npm install -D json-server
- リソースを作成する(サンプルは下記)
- server.js
- db.json
- 起動する
node server.js
- リクエストを投げる
サンプルリソース
server.js
const jsonServer = require('json-server');
const server = jsonServer.create();
const router = jsonServer.router('db.json');
const middlewares = jsonServer.defaults();
// ルータ↓↓↓ ここを修正↓↓↓***************************************************************
server.use(jsonServer.rewriter({
/** ユーザー情報取得API */
"/api/get/users*": "/get_users_v1"
//,"/api/get/users*": "/get_users_v1_ZERO"
//,"/api/get/users*": "/get_users_v1_ERROR"
}))
// ルータ↑↑↑ ここを修正↑↑↑***************************************************************
// ミドルウェアの設定 (コンソール出力するロガーやキャッシュの設定など)
server.use(middlewares);
var num_get_users = 1;
var num_get_name = 1;
server.use(function (req, res, next) {
// req.query = {};
// console.log(req.query);
// console.log(req.body);
// console.log(req);
// console.log(res);
if (req.method === 'POST') {
// POST送信を受ける場合、受けたPOSTレスポンスをGETに変更する
req.method = 'GET';
} else {
req.query = req.params;
req.params = null;
}
//↓↓↓↓↓↓カスタマイズはここで変更↓↓↓↓↓↓******************************************
// 返却ステータス設定---------------------------------------
//console.log(req.originalUrl);
if (req.originalUrl=='/api/get/users*') {
res.statusCode=400;
} else if (req.originalUrl=='/api/get/name*') {
res.statusCode=200;
} else if (req.originalUrl=='/api/get/age*') {
res.statusCode=200;
}
// 同一APIを複数回呼び出す場合、レスポンス設定-------------
if (req.originalUrl=='/api/get/users') {
// 奇数回目アクセスの場合
if (num_get_users % 2 == 0) {
res.req.url = '/get_users_v1_ZERO';
//res.req.url = '/get_users_v1_ERROR';
}
num_get_users++;
}
if (req.originalUrl=='/api/get/name') {
// 二回目アクセスの場合
if (num_get_name == 2) {
//res.req.url = '/get_name';
}
num_get_name++;
}
//↑↑↑↑↑↑カスタマイズはここで変更↑↑↑↑↑↑******************************************
// Continue to JSON Server router
next()
})
// db.json をもとにデフォルトのルーティングを設定する
server.use(router);
// サーバをポート 3003 で起動する
server.listen(3003, () => {
console.log('JSON Server is running');
});
db.json
{
"get_users_v1_ERROR":
{
"error": {
"message":"We are sorry, this Error should never happen to you",
"tip":"Please contact support",
"code":500
}
}
,"get_users_v1_ZERO":
{
"success": {
"code":200
}
}
,"get_users_v1":
{
"success": {
"code":200
,"name":"hanako"
}
}
}