VScode Thunder Client の導入方法

# 概要

- VScodeにThunder Clientと言うリクエストを送る拡張機能を使えるようにするまでの方法をまとめる。

# Thunder Clientって？？

- API開発時などに使用するアプリケーションにリクエストを送信するためのVScodeの拡張機能
- Postmanとほぼ同じ使用感
- Githubのリポジトリ
    - [https://github.com/rangav/thunder-client-support](https://github.com/rangav/thunder-client-support)

# 今回のゴール

- VScodeにThunder Clientを導入して簡単なリクエストを投げてみる。
- リクエストはコレクションを作成 → コレクション内にフォルダーを作成 → フォルダ内にリクエストを作成とし、ちょっとだけ本当の開発っぽい感じにリクエストを定義してみる。
- リクエストを投げる先は筆者のDocker PHPコンテナのLaravelプロジェクトとして、下記のようなOKを返す簡単なルーティングを記載する。（web.phpに記載）

    ```アプリケーションディレクトリ/routes/web.php
    // thunder client動作確認用
    Route::get('/thunder', function(){
        return 'OK';
    });
    ```

# 導入方法

1. VScodeを起動する。
1. 拡張機能を検索するウインドウを開き「Thunder Client」と入力する。
1. 1番目にヒットしたものの「インストール」をクリックする。

    ![LineMessageService_php_—_line_crm_project.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/3a14b5b9-3ad1-3caf-3441-3a84c9006422.png)

1. これで導入そのものは完了である。インストールされるとVScodeのサイドバーにThunder Clientのアイコン（雷のやつ）が追加される。

    ![拡張機能__Thunder_Client_—_line_crm_project.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/f44d5cfd-a015-5e64-0de4-afe5a514b2ff.png)

# 簡単な確認（コレクション、フォルダ、リクエストの新規作成とリクエスト実行）

1. VScodeのサイドバーに追加されたThunder Clientのアイコンをクリックする。
1. コレクションの新規作成
    1. 表示されたThunder Clientのメニューで「Collections」をクリックする。

        ![LineMessageService_php_—_line_crm_project-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/56fac2c8-a0e7-bb04-6529-049fe7b955f4.png)

    1. メニュー展開用のボタンをクリックして表示されたメニューの「New Collection」をクリックする。

        ![LineMessageService_php_—_line_crm_project-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/81b509f9-75e4-1416-013b-56b0bffc4d8c.png)

    1. VScodeのエディター上部にコレクション名の入力欄が表示されるので任意のコレクション名を入力してEnterを押下する。（コレクション名は後から変更できる。）

        ![LineMessageService_php_—_line_crm_project-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/a239eb36-b4d3-fea3-e91a-7b1e0be41c1e.png)

    1. 「Collections」に今追加したコレクションが追加される。

        ![LineMessageService_php_—_line_crm_project-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/046c22e1-554e-d92a-ba20-5f1d79a854ff.png)

1. フォルダーの新規作成
    1. 作成したコレクションにカーソルを合わせると三点リーダーが表示されるのでクリックし、展開したメニューの「New Folder」をクリックする。

        ![LineMessageService_php_—_line_crm_project-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/f47fb677-00bb-421f-95a9-c4c2bf9041f9.png)

    1. VScodeのエディター上部にフォルダー名の入力欄が表示されるので任意のフォルダー名を入力してEnterを押下する。（フォルダー名は後から変更できる。）

        ![LineMessageService_php_—_line_crm_project-7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/904e361c-c4a8-a8b9-b162-f20c31e10f1b.png)

    1. コレクション内部に今追加したフォルダーが追加される。

        ![LineMessageService_php_—_line_crm_project-8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/26d39b19-eaac-880f-0bc5-ce91c28a5967.png)

1. リクエストの新規作成
    1. 作成したフォルダーにカーソルを合わせると三点リーダーが表示されるのでクリックし、展開したメニューの「New Request」をクリックする。

        ![LineMessageService_php_—_line_crm_project-9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/36823ce1-c371-5ec9-0a7d-5b7872b265ed.png)

    1. VScodeのエディター上部にフォルダー名の入力欄が表示されるので任意のリクエスト名を入力してEnterを押下する。（リクエスト名は後から変更できる。）

        ![LineMessageService_php_—_line_crm_project-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/6b4a04f2-53a5-3c65-39b3-f5199ac3d1b4.png)

    1. フォルダー内部に今追加したリクエストが追加される。デフォルトでGETのリクエストが作成されるようだ。

        ![messages_—_line_crm_project.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/ba59390f-77bc-2714-28da-794acd4667ab.png)

    1. 作成したリクエストにカーソルを合わせると三点リーダーが表示されるのでクリックし、展開したメニューの「Open in New Tab」 をクリックする。

        ![web_php_—_line_crm_project.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/433867c9-5ea2-fde6-8d4d-57a3a55a5fc7.png)

1. リクエスト実行（皆さんで簡単なレスポンスを返す環境を作っていただきたい。下記はあくまで筆者の場合です。）
    1. エディター部分にリクエストの詳細が表示される。リクエストを送るURLを入力して「Send」をクリックする。（筆者は`http://`を省略していますが明示的に記載したほうが良いかもしれません。）

        ![messages_—_line_crm_project-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/545b6dee-7ad1-9e01-6ca0-3d4a3f43997b.png)

    1. 筆者が用意したDocker PHPコンテナ内のLaravelプロジェクトでリクエストを受け取り下記の処理が実行される。

        ![web_php_—_line_crm_project-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/932c132a-7a58-25a2-7243-d8a1f05dd6a4.png)

    1. リクエストの詳細の下部にレスポンスで帰った内容が表示される。今回はステータスコード200で「OK」と言う文字列が帰ったので問題なくリクエストの送信と受け取りができた模様である。

        ![messages_—_line_crm_project-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/f738dba6-9a89-44df-0302-65b8c65e1f86.png)

# 関連記事

1. Thunder Clientの中で変数を定義して使いたい方はこちら
    - [VScode Thunder Client 変数を定義して使う](https://qiita.com/miriwo/items/10eb6fd2191c98e2b505)