MMockの使用方法を簡単にご紹介
##MMockとは
リポジトリ:https://github.com/jmartin82/mmock
主にGo言語によって記述された、APIのmockサーバーです。
**「実際のAPIがまだ無いから、バックエンドの処理を作れない😫」**といった時に、yml
やjson
を定義してあげることで簡単に仮のAPIを作成することができます。
##導入方法(docker-compose)
今回は環境に依存した導入方法ではなく、docker
及びdocker compose
を使用して導入していきます。
Dockerhub:https://hub.docker.com/r/jordimartin/mmock
ディレクトリ構造
- app01/
- mmock/
- 200_get.yml (APIの仕様を定義したファイル)
- docker-compose.yml
version: '3'
services:
mmock:
image: jordimartin/mmock:v3.0.0
restart: 'always'
volumes:
- ./mmock:/config
ports:
- '8082:8082'
- '8083:8083'
解説
構造
config
ディレクトリ下にyml
やjson
を保存することで、自動でサーバーに反映されていきます。今回はdocker環境で実行しているため、./mmock
ディレクトリをマウントしています。
ポート番号について
MMockでは、デフォルトで8082はAPIサーバー、8083はコンソールにポート番号が割り当てられております。こちらも、ホストPCの同一ポートにポートフォワードしております。
###実際に使ってみる
localhost:8082
でコンソールにアクセスするとこのような画面が表示され、リアルタイムでAPIへのアクセスを監視できるようになっております。
試しに以下のようなyml
ファイルを、./mmock
下に定義してみましょう。
request:
method: GET
path: "/hello/*"
response:
statusCode: 200
headers:
Content-Type:
- application/json
body: '{"hello": "{{request.query.name}}, my name is {{fake.FirstName}}"}'
この状態で、`localhost:8083/hello?name=john doe`を叩くと、 ![qiita_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619992/d856633a-bd00-0349-582e-72edeb727094.png) 一般的なAPIと同様、リクエストに応じたレスポンスを返してくれます。
ちなみにコンソール側にはこのように表示されます。リクエスト、レスポンスの内容を詳細に確認出来ますね。
基本的な機能は以上となります。