Apidog

オールインワンのAPI開発プラットフォーム

API設計

API仕様書生成

API設計

API Mock

APIテスト自動化

無料登録
Home / 操作ガイド / Httpbinの使い方:便利にAPIをテストするツール

Httpbinの使い方:便利にAPIをテストするツール

Httpbinは、HTTP リクエストのテストやデバッグに使用できるシンプルな Web サービスです。本文では、Httpbinの基本情報を紹介した上、基本的な使い方を皆さんに紹介します。

Httpbinは、HTTP リクエストのテストやデバッグに使用できるシンプルな Web サービスです。本文では、Httpbinの基本情報を紹介した上、基本的な使い方を皆さんに紹介します。

💡
ApidogというAPIテストツールを使用することで、より便利にAPIのテストを行うことができます。Apidogは直感的なUIを備えており、ただの1クリックでAPIの単体テストを行うことができます。

Httpbinは、APIの開発やテストにおいて非常に便利なツールであり、Apidogと組み合わせることでさらに強力なテスト環境を構築できます。
button

Httpbinとは

Httpbinは、Python + Flaskで書かれたHTTP Request & Responseサービスであり、主にHTTPライブラリのテストに使用されます。リクエストを送信すると、指定されたルールに従ってリクエストが返されます(送信されたリクエストの情報を確認できます)。

Httpbinの公式サイト

HttpbinはHTTP/HTTPSリクエストをサポートし、すべてのHTTPメソッドをサポートしています。HTTPリクエストとレスポンスのさまざまな情報、例えばcookie、IP、ヘッダー、ログイン認証などをテストできます。302リダイレクトや302リダイレクトの回数をシミュレートすることもできます。また、HTMLファイル、XMLファイル、または画像ファイル(返される画像のフォーマットを指定することもできます)を返すこともできます。

Httpbin公式サイト:http://httpbin.org/

Httpbinオープンソース:https://github.com/postmanlabs/httpbin

Httpbinの用途は?

それでは、Httpbinサービスは何のために使われるのでしょうか?

一言で説明すると、送信したリクエストが実際にどのようなものかを確認するためです。リクエストのどの部分の情報を確認する必要があるかに応じて、適切なAPIエンドポイントを呼び出すだけです。

Httpbinのデプロイ:ローカルで実行する方法

HttpbinはWebサイトを通じて簡単にアクセスすることもできますし、ローカルにデプロイすることもできます。

Httpbinをローカル環境にデプロイすると、外部のサーバーと通信することなく、HTTP通信をデバッグしたりすることができるようになります。

pipツールでインストール

Httpbinguicornをそれぞれインストールする必要があります。guicornwsgi httpサーバーであり、Httpbinサービスを起動するために使用されます。

# cmdコマンドラインに入り、以下のコマンドを実行します:
# HttpbinとguicornをインストールHttpbinとguicornをインストール
pip install gunicorn
pip install httpbin

# 以下のコマンドを実行してサービスを起動します:
gunicorn httpbin:app

注意:この方法はWindowsシステムでは使用できません。エラーImportError: No module named 'fcntl'が発生します。(ネット上で調べたところ、fcntlモジュールはWindows環境では認識されないためです)

Httpbinをローカルにインストール

# githubからHttpbinをローカルにクローンする
# cmdコマンドの現在のディレクトリ(例えばC:\Users\L>)にコマンドを実行すると、直接クローンされます。
git clone https://github.com/Runscope/httpbin.git

# httpbinコマンドをインストールする
pip install -e httpbin

# httpbinサービスを起動するコマンド
python -m httpbin.core [--port=PORT] [--host=HOST]
# 例:アクセス方法:http://127.0.0.1:9999/get
python -m httpbin.core --port=9999

実際に試したところ、Windowsシステムでは、この方法でローカルにHttpbinサービスを正常に起動できました。

Dockerでローカルデプロイ

HTTPBINをDockerを使用してローカルで実行する方法を以下に示します。

前提条件:

  • Dockerがインストールされていること

手順:

ステップ⒈ターミナルまたはコマンドプロンプトを開きます。

ステップ⒉以下のコマンドを実行して、HTTPBINのDockerイメージを取得します。

docker pull kennethreitz/httpbin

ステップ⒊イメージの取得が完了したら、以下のコマンドを実行してHTTPBINのDockerコンテナを起動します。

docker run -p 80:80 kennethreitz/httpbin

このコマンドは、ホストマシンのポート80をコンテナのポート80にマッピングします。

ステップ⒋コンテナが正常に起動すると、以下のようなメッセージが表示されます。

[2023-04-19 12:34:56 +0000] [1] [INFO] Starting gunicorn 19.9.0
[2023-04-19 12:34:56 +0000] [1] [INFO] Listening at: http://0.0.0.0:80 (1)
[2023-04-19 12:34:56 +0000] [1] [INFO] Using worker: sync
[2023-04-19 12:34:56 +0000] [8] [INFO] Booting worker with pid: 8

ステップ⒌ブラウザを開き、http://localhost/ にアクセスします。HTTPBINのトップページが表示されます。

ステップ⒍各種エンドポイントにHTTPリクエストを送信してテストを行うことができます。例えば、http://localhost/get にアクセスすると、GETリクエストのレスポンスが表示されます。

ステップ⒎コンテナを停止するには、ターミナルまたはコマンドプロンプトでCtrl+Cを押します。

ステップ⒏コンテナを完全に削除するには、以下のコマンドを実行します。

docker rm $(docker ps -a -q --filter ancestor=kennethreitz/httpbin)

これで、HTTPBINをDockerを使用してローカル環境で実行し、テストを行うことができます。Dockerを使用することで、環境のセットアップが簡単になり、異なるマシン間での一貫性が保たれます。

注意: HTTPBINのDockerイメージは、デフォルトでポート80を使用します。他のアプリケーションがすでにこのポートを使用している場合は、-p オプションで別のポート番号を指定する必要があります。

Httpbinにアクセスして利用する方法

Httpbinの使用方法は非常にシンプルです。リクエストのアドレスをhttpbin.orgに変更するだけです。

例えば、GETリクエスト:http://httpbin.org/get

ローカルにデプロイされたHttpbinサービスを使用する場合は、http://127.0.0.1:[自分で設定したポート番号]にアクセスします。

Httpbinで利用可能なAPIエンドポイント

Httpbinの公式サイトまたはローカルのHttpbin`サービスhttp://127.0.0.1:9999/にアクセスすると、以下のような画面が表示されます。

HTTPBINのエンドポイント

ページ内の各オプションをクリックすると、対応するインターフェースの説明が表示されます。

よく使われるAPIエンドポイント

エンドポイント 説明
/ip リクエスト元のIPアドレスを返します。
/user-agent 送信されたリクエストのUser-Agentパラメータを返します。
/headers 送信されたリクエストのヘッダーパラメータを返します。
/get GETリクエストの送信パラメータ。
/post POSTリクエストの送信パラメータ。
/patch PATCHリクエストの送信パラメータ。
/put PUTリクエストの送信パラメータ。
/delete DELETEリクエストの送信パラメータ。

APIレスポンスの例

(1)ヘッダー情報を返す:

# APIエンドポイント:https://httpbin.org/headers
{
  "headers": {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    "Accept-Encoding": "gzip, deflate, br",
    "Accept-Language": "ja,en-US;q=0.9,en;q=0.8,zh-CN;q=0.7,zh;q=0.6",
    "Host": "httpbin.org",
    "Upgrade-Insecure-Requests": "1",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36",
    "X-Amzn-Trace-Id": "Root=1-5ff1a4f7-69a84fca0693b09e28d214b0"
  }
}

(2)自分のIPアドレスを返す:

# APIエンドポイント:https://httpbin.org/ip
{
  "origin": "106.35.9.12"
}

(3)GETリクエストの詳細情報を返す:

# APIエンドポイント:https://httpbin.org/get?department=1
{
  "args": {
    "department": "1"
  },
  "headers": {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    "Accept-Encoding": "gzip, deflate, br",
    "Accept-Language": "ja,en-US;q=0.9,en;q=0.8,zh-CN;q=0.7,zh;q=0.6",
    "Host": "httpbin.org",
    "Upgrade-Insecure-Requests": "1",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400",
    "X-Amzn-Trace-Id": "Root=1-5ff1a59b-4e514a40023721d276ae07eb"
  },
  "origin": "106.35.9.12",
  "url": "https://httpbin.org/get?department=1"
}
説明:HttpbinサービスでPOSTがどのように使用されるかを確認する必要がある場合は、requestsライブラリのPOSTリクエストの学習記事をご覧ください。

Apidogでより便利にAPIをテストする

APIの動作を理解したり、正確な動作を確保したりするには、APIテストツールのApidogを使用するのがおすすめです。直感的なUIでただの1クリックだけで、APIの単体テストを行う事ができます。

button

ステップ⒈Apidogを開き、「新しいAPI」をクリックして、単体テストを行うAPIを新規に作成します。

ステップ⒉APIが使用するHTTPメソッドを選択した上、エンドポイントのURLを入力します。

ステップ⒊APIの仕様書に記載されているように、必要なパラメータなどの情報を記入して送信ボタンをクリックして、APIのリクエストを送信して、レスポンスを取得します。

APIの単体テスト

以上の手順を参照して、APIの単体テストを簡単に行う事ができます。また、Apidogにレスポンスの「自動検証」という機能も備えています。

この機能は、返されたレスポンスが事前に定義したステータスコードとデータ構造に一致しているかどうかをを自動的に判定することもできるので、テスト面から言うと、非常に便利です。

APIレスポンスの自動検証
button

まとめ

Httpbinは、HTTPリクエストのテストやデバッグに非常に便利なツールであり、Python + Flaskで書かれたHTTP Request & Responseサービスです。Httpbinには様々なAPIエンドポイントが用意されており、それぞれ異なる機能を提供しています。これらのエンドポイントを活用することで、APIの動作を理解したり、正確な動作を確保したりすることができます。

さらに、ApidogというAPIテストツールを使用することで、より便利にAPIのテストを行うことができます。Apidogは直感的なUIを備えており、ただの1クリックでAPIの単体テストを行うことができます。

Httpbinは、APIの開発やテストにおいて非常に便利なツールであり、Apidogと組み合わせることでさらに強力なテスト環境を構築できます。本記事を参考に、ぜひHttpbinとApidogを活用して、APIの開発とテストを円滑に進めてください。

Apidogのニュースレターを購読する

今すぐ購読すると、いつでもApidogから更新情報と最新観点を手に入れることができます。