フロントエンド開発やAPI連携のテストにおいて、バックエンドAPIがまだ準備できていない場合や、特定のレスポンスをシミュレートしたい場合に、モックサーバーが非常に役立ちます。ここでは、Pythonの標準ライブラリ wsgiref を用いて、JSONデータを返す簡易的なモックサーバーを構築する方法を紹介します。
WSGI (Web Server Gateway Interface) を用いてWebサーバーを起動する
wsgiref.simple_server は、PythonのWebアプリケーションとWebサーバー間の標準インターフェースであるWSGIのリファレンス実装です。これを利用して、シンプルなHTTPサーバーを構築できます。
| |
コードの解説
make_server('', PORT, application):'': ホスト名を指定しない場合、すべての利用可能なインターフェースからの接続を受け入れます(0.0.0.0と同等)。PORT: サーバーがリッスンするポート番号です。application: WSGIアプリケーションオブジェクトです。HTTPリクエストが来るたびにこの関数が呼び出されます。
environ: 環境変数を含む辞書で、HTTPリクエストに関する情報(パス、ヘッダーなど)が含まれます。PATH_INFOはリクエストのパス部分です。start_response(status, headers): レスポンスのステータスコードとヘッダーを設定するための関数です。json.dumps(data).encode("utf-8"): Pythonの辞書をJSON文字列に変換し、さらにバイト列にエンコードしています。WSGIアプリケーションはバイト列を返す必要があります。Access-Control-Allow-Origin: *: これはCORS(Cross-Origin Resource Sharing)に対応するためのヘッダーです。異なるオリジン(ドメイン、プロトコル、ポート)からのJavaScriptリクエストを許可するために必要です。開発時には*で全てを許可することが多いですが、本番環境では特定のオリジンに制限することが推奨されます。
このスクリプトを実行すると、指定したポートでWebサーバーが起動し、/api/1 や /api/2 などのパスにアクセスすると、対応するJSONデータが返されます。