stubcellを使ってhttpモックサーバーを作る

目次 

はじめに

APIのテストで使ったので、これから自分用で使う時用に備忘録

Stabcellとは?

実際の開発だと、APIできるまで待ってねっている時があるのでテスト用にモックを作る時に使用します。

準備

Node.jsがインストールされていること

流れ

  • $ npm install stubcell -g でインストール
  • 色々ファイル作成
  • $ stubcellでモックサーバーを起動

$ npm install stubcell -g でインストール

ここではstubcellのインストールをしています

npmのオプションには-gというものがあるのですが、

これは、グローバルにパッケージをインストールするのでパスを指定しなくても特定のコマンドがどのディレクトリからでも実行できるようになる

-gがないと、no such file...的なので実行できない場合がある。

色々ファイル作成

ここでは主に2種類のファイルを作成します。

  • entry.yamlファイル
  • jsonファイル

entry.yaml

yamlファイルがある利点としては、コメントがかけるので可読性が高まる

よく周りの人たちが可読性,可読性...と言っていたのを理解できなかったのですが、いざ実務をすると、1000行超えるコード読みにくくて仕方がない。。

以下のファイルを作成

$ touch entry.yaml

yamlファイル記述

- # ユーザーリスト
  request:
    url: /users
    method: GET
  response:
    status: 200
    file: users/user.json

これは参考のqiita記事からサンプルコードを真似させていただきました。

jsonファイル

$ mkdir users

$ touch users/user.json

user.json

{
    "users": [
        {
            "id": 1,
            "name": "user1",
            "message": "hello i'm 1"
        },
        {
            "id": 2,
            "name": "user2",
            "message": "hello i'm 2"
        },
        {
            "id": 3,
            "name": "user3",
            "message": "hello i'm 3"
        },
        {
            "id": 4,
            "name": "user4",
            "message": "hello i'm 4"
        },
        {
            "id": 5,
            "name": "user5",
            "message": "hello i'm 5"
        }
    ]
}

実行

これは-gでインストールしていないとエラーが出ます(多分)

$ stubcell

Listening on 8090
entry yaml is *{Path}*
sample/entry.yaml
silent is false
record proxy is undefined
loose compare undefined

これで完成

f:id:makoo5:20190925012022p:plain

しっかり取れてる!

ちなみにAPIが動作してるか確認するのにはPostmanがメジャーだと思ってるけど、chrome拡張機能であるYet Another Rest Clientがかなり手っ取り早くできるのでおすすめ(リンク下記)

chrome.google.com

感想

最近Swaggerというものをよく聞くので調べてみようと思います。(記事にもしてみようかと思ってる)

参考

stubcellを使ってみた - Qiita

クライアントサイドのAPI開発を楽にする、WebAPIモックサーバー「stubcell」の使い方 | Tips Note by TAM