59
63

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

APIにリクエストを投げたい(VSCode REST Clientの紹介)

Last updated at Posted at 2022-04-11

使ってる方も多いかとは思いますが、リクエスト投げてくれるVSCodeの拡張機能Rest Clientの紹介です。

リクエスト投げる方法としてcurlコマンド叩くでもいいんですが、テキストとして残せてチームでも共有できるのが良いです。
あと個人的にPostmanよりも使いやすいし、普段使用しているエディタで使えるのが便利です。
プロジェクトディレクトリにファイル置いておけばgit経由で他メンバーも利用できます。

準備

VSCodeの拡張機能のタブで「REST Client」と検索して出てきたものをインストールします。

スクリーンショット 2022-04-11 23.14.03.png

拡張子を「~~~.http」としたファイルを作成します。
これだけで準備完了です。楽!

リクエスト

こんな感じでバーっとAPI投げたいリクエストを書いていきます。
一行目にリクエストライン
二行目以降にリクエストヘッダー
空行をあけて最後にリクエストボディ
を書いていきます。

スクリーンショット 2022-04-12 0.06.58.png

###(シャープ3つ)で、リクエストの区切りとなります。

リクエストラインの上のSend Requestという文字をぽちっと押すと、リクエストのデータが一時テキストとして返ってきます。

スクリーンショット 2022-04-11 23.50.57.png

必要だったら保存もできます。

内容はUnicodeにエンコードされてる時があるのでデコードして読んでください。
設定で変更できます。
スクリーンショット 2022-07-01 15.27.58.png

メソッド毎の書き方(例)

GET

GET http://localhost:8000/api/posts HTTP/1.1

クエリパラメータつける場合は、以下のように改行しても投げれるみたいです。見やすい。

GET http://localhost:8000/api/posts
    ?user_id=1
    &title=hogehoge
    &body=fugafuga

POST

POST http://localhost:8001/api/post HTTP/1.1
content-type: application/json
Accept: application/json

{
    "user_id": "1",
    "title": "title",
    "body": "body",
    "status": "2"
}

PATCH

PATCH http://localhost:8000/api/post HTTP/1.1
content-type: application/json
Accept: application/json

{
    "_method": "patch",
    "title": "changed title",
    "body": "changed body",
    "status": "1"
}

必要なパラメータに加えて"_method": "patch"のパラメータをつけてます
なんかGETとPOST以外のメソッドって特殊扱いなんですよね
HTTPだかブラウザだかの仕様の話だった気がするんですけど忘れました
Laravelでもそういう感じっぽいです(めっちゃ説明適当ですみません)
ところでなんでPATCH使ってるんだろ・・・
参考: https://qiita.com/maunamoana/items/f5fff8172301ef0dc1dc

あとこれは罠なんですが、リクエストボディの最後のパラメータの後に,(カンマ)を入れると値が送信されなかったです。。
JSONっぽいですが最後のパラメータにはカンマをつけないように気をつけてください。

上記以外にもメソッドありますが割愛。

その他の機能

変数も使えます。
下の例みたいにURLのドメイン部分を変数に変えておくと環境が変わった場合も楽だと思います。
※公式からの引用
スクリーンショット 2022-04-09 11.50.42.png

前のレスポンスの値を保存して次のリクエストの値として設定したりとかもできます。
スクリーンショット 2022-04-09 11.56.23.png

GraphQLにも対応してるみたいです。
スクリーンショット 2022-04-09 11.56.55.png

多分他にも色々面白い機能あると思うんでドキュメント見てみてください。

最後に

4月から新しいプロジェクトに参画しましたが、フロントエンド/バックエンドと担当がハッキリ分かれてる案件でフロントの画面がない状態でバックエンド実装する必要があったので改めて真面目に使ってみました。
これのおかげで開発しやすいです。ありがとうREST Client!

おしまい

59
63
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
59
63

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?