モックサーバ(instant-mock)で送信できるContent-Typeメモ

# モックサーバ(instant-mock)で送信できるContent-Typeメモ
前回下記の記事でinstant-mockの構築手順を（ほぼ自分用に）まとめた。



https://ameblo.jp/monogusahanndomeido/entry-12707180074.html


今回はこのモックサーバーはresponse bodyにどんなデータの形式を入れ込んで送信できるのかを検証してみた。
下記に実際のコードを格納したので、ご興味のある方はどうぞ。

https://github.com/kosakamiki/MockServer-instant-mock

# 検証結果
bodyに入れ込むことができたデータの形式は以下のものであった。

- JSONファイル
- PDFファイル
- EXCELファイル( .xlsx OFFICE 2007以降)
- CSVファイル
- HTMLファイル
- CSSファイル
- テキストファイル
- JPEGファイル(.jpg)
- PNGファイル
- Bitmapファイル

bodyにデータを格納する際にContent-Typeの参考にさせていただいたのは下記サイトである。

https://qiita.com/AkihiroTakamura/items/b93fbe511465f52bffaa

# ymlファイル
APIを定義したymlファイルか下記通り。
mockサーバを初期化した際にできたymlファイルに書き加えていった。

```ruby:parser-default.yml
- if:
    query:
      group: team-a
  then:
    status: 200
    headers:
      Content-Type: application/json
    body: team-a.json

- if:
    query:
      group: team-b
  then:
    status: 200
    headers:
      Content-Type: application/json
    body: team-b.json

- if:
    query:
      group: team-pdf
  then:
    status: 200
    headers:
      Content-Type: application/pdf
    body: PDFファイルだお.pdf

- if:
    query:
      group: team-sheet
  then:
    status: 200
    headers:
      Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    body: test.xlsx
    
- if:
    query:
      group: team-csv
  then:
    status: 200
    headers:
      Content-Type: text/csv
    body: hell.csv

- if:
    query:
      group: team-html
  then:
    status: 200
    headers:
      Content-Type: text/html
    body: test.html

- if:
    query:
      group: team-css
  then:
    status: 200
    headers:
      Content-Type: text/css
    body: test.css

- if:
    query:
      group: team-text
  then:
    status: 200
    headers:
      Content-Type: text/plain
    body: hello.txt

- if:
    query:
      group: team-jpeg
  then:
    status: 200
    headers:
      Content-Type: image/jpeg
    body: テスト.jpg

- if:
    query:
      group: team-png
  then:
    status: 200
    headers:
      Content-Type: image/png
    body: テスト.png

- if:
    query:
      group: team-bmp
  then:
    status: 200
    headers:
      Content-Type: image/bmp
    body: テスト.bmp

- then:
    status: 200
    headers:
      Content-Type: application/json
    body: all.json

```





# 実行結果
ARC(Advanced REST client)を使って定義したAPIのレスポンスを確認しようとしたところ、
レスポンス結果がバイナリーコードのまま表示され、上手く送れてるのかの判別がしにくかった。

##### ARCのスクショ
|![2021-11-30_19h19_51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2330584/b2a60f45-f794-cd39-2b35-36fea1571c61.png)|
|:-:|


そこで今回はコンソールでgetコマンドを使用して動作検証を行った。

### JSONファイル
※team-aとteam-bはmockサーバを初期化した際にできたymlファイルに元々記載してあったもの。
[http://localhost:3000/mock/bodyTest?group=team-a](http://localhost:3000/mock/bodyTest?group=team-a)
##### team-aスクショ
|![2021-11-30_19h27_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2330584/afe7e623-0f64-7ca9-2264-7defc9c316c7.png)|
|:-:|

[http://localhost:3000/mock/bodyTest?group=team-b](http://localhost:3000/mock/bodyTest?group=team-b)
##### team-bスクショ
|![2021-11-30_19h27_26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2330584/ba80ed52-2580-a7ae-8ab9-55aeb2d8f702.png)|
|:-:|


### PDFファイル
[http://localhost:3000/mock/bodyTest?group=team-pdf](http://localhost:3000/mock/bodyTest?group=team-pdf)
##### team-pdfスクショ
|![2021-11-30_19h27_49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2330584/6cbdfddf-4d88-15eb-359d-ac649e3dbc6a.png)|
|:-:|


### EXCELファイル( .xlsx OFFICE 2007以降)
ブラウザの画面の表示はymlファイルの一番最後に記述してあるthenのjsonファイルの中身が表示された。
http://localhost:3000/mock/bodyTest?group=team-sheet
##### team-sheetスクショ
|![2021-11-30_19h26_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2330584/3ae7c820-80f4-cd70-a4ed-a7010f7b222d.png)|
|:-:|


### CSVファイル 
[http://localhost:3000/mock/bodyTest?group=team-csv](http://localhost:3000/mock/bodyTest?group=team-csv)
##### team-csvスクショ
|![2021-11-30_19h26_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2330584/0acc0a36-4534-7f7d-14ca-e64c52444a21.png)|
|:-:|

### HTMLファイル
[http://localhost:3000/mock/bodyTest?group=team-html](http://localhost:3000/mock/bodyTest?group=team-html)
##### team-htmlスクショ
|![2021-11-30_19h28_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2330584/bb984da0-7c66-9353-fcc6-ed5c98c3895a.png)|
|:-:|

### CSSファイル
[http://localhost:3000/mock/bodyTest?group=team-css](http://localhost:3000/mock/bodyTest?group=team-css)
##### team-cssスクショ
|![2021-11-30_19h28_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2330584/5a46b5c5-c4a9-b5f1-593d-fe6747eec7c3.png)|
|:-:|

### テキストファイル
[http://localhost:3000/mock/bodyTest?group=team-text](http://localhost:3000/mock/bodyTest?group=team-text)
##### team-textスクショ
|![2021-11-30_19h28_34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2330584/f515f39f-94f3-53e5-35de-fb6e0b8ccd29.png)|
|:-:|


### JPEGファイル(.jpg)
[http://localhost:3000/mock/bodyTest?group=team-jpeg](http://localhost:3000/mock/bodyTest?group=team-jpeg)
##### team-jpegスクショ
|![2021-11-30_19h28_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2330584/981382f5-5503-cbe8-2f70-dfba175ce5bd.png)|
|:-:|


### PNGファイル
[http://localhost:3000/mock/bodyTest?group=team-png](http://localhost:3000/mock/bodyTest?group=team-png)
##### team-pngスクショ
|![2021-11-30_19h28_49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2330584/1773f345-d19c-4ca0-e7a7-3f106f7f4482.png)|
|:-:|


### Bitmapファイル
[http://localhost:3000/mock/bodyTest?group=team-bmp](http://localhost:3000/mock/bodyTest?group=team-bmp)
##### team-bmpスクショ
|![2021-11-30_19h29_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2330584/057c3047-d882-93be-f379-516c7c94d7a6.png)|
|:-:|



以上が試した結果になる。
もし気が向いたら他のContent-Typeも試して追記するカモ。。。