読者です 読者をやめる 読者になる 読者になる

大学生からの Web 開発

廃れない技術よ 我が身に

APIのモックを簡単に作成できる「node-easymock」

フロントエンド・バックエンドを分離してAPI主体で開発していく「APIファースト」がホットっぽいですね。

APIファーストで開発する - ワザノバ | wazanova

それに捗りそうな「node-easymock」を紹介します。

何をしてくれるか

例えば、localhost:3000/userにアクセスしたら

{
  "name": "taro",
  "age": 22,
  "comment": "Hi"
}

みたいなJSONを返してほしいなー、ってのをちゃっちゃと作れるツールです。

API実装はしてないけど、テスト用に使うためのモックサーバーを簡単に立てられるツール。

インストール

node.js製でnpmを使ってインストールします。

$ npm install -g easymock

使おう

localhost:3000/userから取得したければ、user_get.jsonに色々書いていきます。このように、(名前)_(リクエスト名).jsonというファイルの内容がlocalhost:3000/(名前)に(リクエスト名)でアクセスした時に返ってきます。

$ vi user_get.json

{
  "name": "taro",
  "age": 22,
  "comment": "Hi"
}

で、

$ easymock

を実行すると、localhost:3000/userからjsonが返ってきます。

ちなみに、(名前)を除いて_get.jsonファイルだとlocalhost:3000/で返ってきます。

階層構造にする

localhost:3000/items/1みたいに階層構造のURIにしたければ、

easymockSample
└─ items
      └─ 1_get.json

つーかんじでファイルを作ればOK

ルーティングをする

localhost:3000/users/:useridみたいにルーティングしたいときは、config.jsonで設定します。

$ vi config.json

{
  "routes": [
    "/user/:userid"
  ]
}

$ vi users/userid_get.json

{ "id": #{userid} }

としてやれば、localhost:3000/users/3267なんかで

{"id": 3267}

が返ってきます。 config.jsonには他にも色々書けますが省略。

ドキュメント

http://localhost:3000/_documentation/に自動でドキュメントをつくってくれて便利です。

さいご

とても簡単。他にもテンプレート機能、変数、JSONPなんかも使えるので詳しいことは本家参照。

CyberAgent/node-easymock · GitHub