IntelliJ IDEAコードエディターのHTTPクライアントで書いたリクエストをhttpbinでデバッグする
IntelliJ IDEAコードエディターのHTTPクライアントとは
HTTPクライアントはIntelliJ IDEA Ultimateで利用可能な機能です。 ざっくり言うと下記のような機能が含まれています。
- HTTPリクエストを作成、編集、実行できる
- リクエストの詳細を変数化でき、変数をファイルで定義できる
- レスポンスに対する応答ハンドラスクリプトを記述できる
基本的な使い方は公式ドキュメントがわかりやすいです。
httpbinでデバッグする
公式ドキュメントはわかりやすいのですが、コードを書いてみると実際にどんなリクエストが送信されているのか確認したくなりました。 そこでhttpbinと組み合わせてデバッグをする方法を考えてみました。
デバッグ用の環境を作成する
まず、環境ファイルに以下のように実際のAPIを向く環境とhttpbinを向くデバッグ用の環境を作成します。
/anything
へ向けることでどのようなパス、メソッドのリクエストに対してもリクエスト情報を返してくれるようになります。
{ "develop": { "endpoint": "https://localhost:8080", "user": "user", "password": "password" }, "debug": { "endpoint": "https://httpbin.org/anything", "user": "user", "password": "password" } }
実行例
上記の設定で次のリクエストを実行します。 URLや認証情報を変数化しているので、環境を切り替えるだけで実環境とデバッグを変更できます。
POST {{endpoint}}/birds Content-Type: application/json Authorization: Basic {{user}} {{password}} { "name": "Pyrrhura molinae", "color": "pineapple" }
httpbinを向いているdebug環境で実行した場合結果は以下のようになり、ヘッダーやボディに指定されている値が確認できます。
POST https://httpbin.org/anything/birds HTTP/1.1 200 OK Access-Control-Allow-Credentials: true Access-Control-Allow-Origin: * Content-Type: application/json Date: Sat, 30 Nov 2019 12:43:01 GMT Referrer-Policy: no-referrer-when-downgrade Server: nginx X-Content-Type-Options: nosniff X-Frame-Options: DENY X-XSS-Protection: 1; mode=block Connection: keep-alive { "args": {}, "data": "{\n \"name\": \"Pyrrhura molinae\",\n \"color\": \"pineapple\"\n}", "files": {}, "form": {}, "headers": { "Accept-Encoding": "gzip,deflate", "Authorization": "Basic dXNlcjpwYXNzd29yZA==", "Content-Length": "56", "Content-Type": "application/json", "Host": "httpbin.org", "User-Agent": "Apache-HttpClient/4.5.9 (Java/1.8.0_131)" }, "json": { "color": "pineapple", "name": "Pyrrhura molinae" }, "method": "POST", "origin": "210.155.31.19, 210.155.31.19", "url": "https://httpbin.org/anything/birds" } Response code: 200 (OK); Time: 931ms; Content length: 592 bytes
まとめ
環境ファイルとhttpbinを組み合わせることでHTTPリクエストの確認が容易になります。