45
44

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

今更使うJSON Server

Posted at

JSON Serverとは?

REST APIのモック。
コーディング無しで30秒もかからずに作れます(マジで)

Get a full fake REST API with zero coding in less than 30 seconds (seriously)

インストールから起動まで

Node.jsが導入されていることが前提です。

起動までならたった3ステップ。

1. json-serverのインストール

npm install -g json-server

2. db.jsonの作成

用意したディレクトリへ、db.jsonファイルを作成。

db.json
{
  "posts": [
    { "id": 1, "title": "json-server", "author": "typicode" }
  ],
  "comments": [
    { "id": 1, "body": "some comment", "postId": 1 }
  ],
  "profile": { "name": "typicode" }
}

※ルート直下のkey項目がそのままResource urlとなります

3.json-serverの起動

json-server --watch db.json

起動確認

テンション高めな顔文字が表示されたら起動成功です。

  \{^_^}/ hi!

  Loading db.json
  Done

  Resources
  http://localhost:3000/posts
  http://localhost:3000/comments
  http://localhost:3000/profile

  Home
  http://localhost:3000

  Type s + enter at any time to create a snapshot of the database
  Watching...

*http://localhost:3000*へブラウザからアクセスすると、
JSON Serverのホーム画面が表示されます。
スクリーンショット 2018-10-20 15.35.02.png

あとはResourceに対してAPIcallしまくりましょう。

注意

Resourcesに対し、GET/POST/PUT/DELETE(取得/更新/挿入/削除)をすると、
db.jsonが命令によって書き換わります。
「せっかく作ったdb.jsonを、DELETEしてテスト不可能に……」なんてことにならないよう注意してください。
backupは、コンソールへs + enterを入力すると取得できます。適宜使用しましょう。

JSON Serverをカスタマイズする

POSTでGETの内容が返却されるように

json-serverで用意されている、middlewareモジュールを利用します。
まずはmiddleware.jsを作成します。

middleware.js
module.exports = function (req, res, next) {
  if (req.method === 'POST') {
    // Converts POST to GET and move payload to query params
    // This way it will make JSON Server that it's GET request
    req.method = 'GET'
    req.query = req.body
  }
  // Continue to JSON Server router
  next()
}

次に、起動時の引数で、middleware.jsを指定しましょう。
json-server --watch db.json -m middleware.js

db.jsonを複数ファイルに分けたい

json-serverでエンドポイント毎にjsonファイルを分割する - Qiita

参考

45
44
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
45
44

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?