【ツール活用|豆知識】API開発の救世主!Hurlを使ってHTTPテストを「コード」として管理する方法

1. 導入:なぜ今、Hurlなのか

API開発において、PostmanのようなGUIツールで手動テストを繰り返していませんか?しかし、GUIツールは設定をチームで共有しにくく、CI/CDパイプラインへの組み込みも困難になりがちです。そこで登場するのがHurlです。Hurlは、HTTPリクエストをプレーンテキストとして記述できるため、Gitによるバージョン管理が可能で、開発者体験(DX)とテストの自動化を劇的に向上させます。

2. 基礎知識:Hurlの仕組み

Hurlは、HTTPリクエストと「期待される結果(アサーション)」を1つのファイルに記述するツールです。例えば、「このリクエストを送ったら、ステータスコードは200で、レスポンスボディに特定のJSONが含まれているべき」といった検証を、人間が読みやすい形式で行えます。内部的にはcURLをベースにしているため、HTTPの仕様を深く意識せずに直感的に操作できるのが特徴です。

3. 実装/解決策:Hurlファイルの書き方

Hurlを導入するには、公式サイトからバイナリをインストールし、`.hurl`という拡張子のファイルを作成するだけです。ファイル内には、「HTTPメソッド URL」を記述し、その直下に期待値を並べていきます。これにより、テストコード自体がAPIの仕様書(ドキュメント)としての役割を果たします。

4. サンプルプログラム:APIテストの基本

以下のコードを`test_api.hurl`として保存し、`hurl –test test_api.hurl`を実行して動作を確認してください。

1. APIへのGETリクエストを送信
GET https://jsonplaceholder.typicode.com/posts/1

2. ステータスコードが200であることを検証
HTTP 200

3. レスポンスヘッダーの確認
[Asserts]
header "Content-Type" == "application/json; charset=utf-8"

4. JSONボディ内の特定のキーを検証
jsonpath "$.id" == 1
jsonpath "$.userId" == 1

5. 応用・注意点:現場での運用Tips

現場でHurlを活用する際は、以下の点に注意してください。

・変数の活用
ベースURLや環境ごとのAPIキーをハードコードせず、`–variable`オプションや`.env`ファイルを使って切り替える運用にしましょう。これにより、ローカル環境から本番環境まで同じテストファイルで検証可能になります。

・認証の扱い
OAuth2やAPIキー認証が必要な場合は、Hurlの`[Options]`セクションで認証情報を定義できます。

・CI/CDへの統合
GitHub Actionsなどのパイプラインで`hurl`コマンドを呼び出すだけで、PRごとに自動テストを実行できます。テスト結果が失敗すれば即座に通知が飛ぶため、バグの混入を未然に防ぐことが可能です。

Hurlは「ドキュメント兼テスト」としてGit管理できるため、チーム開発の強力な武器になります。まずは既存のAPIエンドポイントを1つ、Hurlファイルに書き起こすところから始めてみてください。

コメント

タイトルとURLをコピーしました