VS CodeのHTTP Clientツール：RapidAPIClientの紹介

## はじめに
普段VS Codeでサーバ側の開発しています。ソースコードとHTTP Clientの2つのアプリケーションを立ち上げるのが面倒だったので、ThunderClientを使っていました。ただ、今年の10月よりThunder Clientが15個以上のRequestを使うのならば有料化する発表となりました。代替のPostmanを利用していたのですが、やっぱり使い勝手が悪い。そこで、RapidAPIClientを触ったところ、いい感じだったので紹介します。

## RapidAPIClient
VSCodeの評価は4.5。
![スクリーンショット 2023-10-07 10.35.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/7c9043ce-d39e-2b21-e087-b85e2c6e9203.png)

![スクリーンショット 2023-10-07 10.35.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/22e89142-1f1b-f487-1642-5f800b67fe2d.png)

https://marketplace.visualstudio.com/items?itemName=RapidAPI.vscode-rapidapi-client

## RapidAPIClient使ってみた
### 基本機能
・GET/POST/PUT/DELETのRest通信
![スクリーンショット 2023-10-07 10.43.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/9b4b0a99-53cc-4815-37ce-74a0757b0a77.png)
→ThunderClient並みの使いやすさ！

・環境変数の設定
環境変数周りは使いにくい。
`https://jsonplaceholder.typicode.com/posts/1`の最後のクエリストリングの1を設定します。環境変数の定義は直感的なのですが、設定はUX悪い。なんでこんなUIにしたの？？って感じです。

・環境変数の定義
![スクリーンショット 2023-10-07 10.55.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/5cff3551-f437-8efa-1b0c-8fcf4800e5d9.png)
→postNumberの値を1に設定。

・環境変数の設定

![スクリーンショット 2023-10-07 10.56.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/2e2264dc-b918-bbad-3f63-736d34823d49.png)
→クエリストリングの設定箇所で`{`をつける。すると、上から3つ目に`Environment Variable`と出て来るので、クリック。
![スクリーンショット 2023-10-07 10.56.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/1d847119-db36-b9fc-f416-dffbd71f7d7b.png)
→`Environment Variable`をもう一度クリック。
![スクリーンショット 2023-10-07 10.57.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/9965bc1d-896d-ff71-0be5-813544445db9.png)
→`postNumber`が表示されるので設定。
これで値が設定されます。うーん、何とも直感的に操作ができない。ここは改善してほしい。

### ここがすごいぞRapidAPIClient!!!
#### プログラミング言語毎のClientツールを作ってくれる。
`Request sunippet`横のプログラミング言語を選択。
![スクリーンショット 2023-10-07 11.04.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/f743fd76-c4fd-886b-09a6-4e0ef625993a.png)
![スクリーンショット 2023-10-07 11.06.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/566a7202-75d4-2ba3-67ea-baa7bbab9347.png)
![スクリーンショット 2023-10-07 11.07.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/83b160b5-5b04-c3d4-3f40-419635671c19.png)

```golang:main.go
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://jsonplaceholder.typicode.com/posts/1/"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```
→すげー！！HTTPClientができてる。これは優秀。使う場面がそんなに想定できないけどww


#### プログラミング言語毎のResponseの型を定義する
![スクリーンショット 2023-10-07 11.14.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/a7bfa7d5-5661-9ca9-f2ae-1b8a7ce11f5f.png)

![スクリーンショット 2023-10-07 11.14.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/0a690b6b-bbb1-a3c0-5866-b650a96fe34c.png)
→すごい！！これは優秀！！API叩くだけで、型を定義してくれる。これは業務の効率化に繋がりそう。

## 所感
RapidAPIClientはすごい優秀！！環境変数の定義を除けば、ThunderClientよりもUXが高い。VsCodeでHTTP Clientツール使うならば、RapidAPIClient1択な気がする！！！