API(Application Programming Interface)とウェブソケットは、リアルタイム通信のための主要なテクノロジーです。この記事では、Pythonを使用してAPIとウェブソケットを活用する具体的な方法を解説します。ソースコードの詳細解説、応用例を含めています。
目次
APIとウェブソケットの違い
APIとウェブソケットは共にサーバとクライアント間での通信を担当しますが、主に以下のような違いがあります。
- APIはリクエスト/レスポンス型
- ウェブソケットはフルデュプレックス通信
- APIは短期間の通信に適している
- ウェブソケットは長時間の通信に適している
PythonでのAPI通信
requestsライブラリ
PythonでAPIにリクエストを送る最も簡単な方法は`requests`ライブラリを使用することです。
import requests
# APIエンドポイント
url = "https://api.example.com/data"
# APIリクエストを送信
response = requests.get(url)
print(response.json())
リクエストとレスポンス
上記のコードはGETリクエストを送信し、レスポンスをJSON形式で出力します。この場合、`response.json()`メソッドでレスポンスのJSONデータを取得できます。
Pythonでのウェブソケット通信
websocketライブラリ
Pythonでウェブソケット通信を行うには、`websocket`ライブラリを使用します。
import websocket
# ウェブソケットの接続
ws = websocket.WebSocket()
ws.connect("wss://websocket.example.com/")
# メッセージの送受信
ws.send("Hello, Server!")
print(ws.recv())
メッセージの送受信
上記のコードで、ウェブソケットを通じてサーバーに”Hello, Server!”というメッセージを送り、レスポンスを受け取ります。
応用例
APIでのバッチ処理
import requests
import time
# 複数のAPIエンドポイント
urls = ["https://api.example.com/data1", "https://api.example.com/data2"]
# 各エンドポイントにリクエストを送信
for url in urls:
response = requests.get(url)
print(response.json())
time.sleep(1) # 1秒待機
この応用例では、複数のAPIエンドポイントに対してリクエストを送信しています。
ウェブソケットでのリアルタイムチャット
import websocket
def on_message(ws, message):
print(f"Received: {message}")
# イベントハンドラの設定
ws = websocket.WebSocketApp("wss://chat.example.com/", on_message=on_message)
# ウェブソケットの接続
ws.run_forever()
この例では、`websocket`ライブラリの`WebSocketApp`クラスを使用してリアルタイムのチャットアプリケーションを作成しています。
まとめ
Pythonを使用してAPIとウェブソケットでのリアルタイム通信を行う方法を学びました。APIはリクエスト/レスポンス型の通信に適している一方、ウェブソケットは長期間にわたる双方向通信に適しています。適切な通信手段を選ぶことで、効率的なリアルタイムアプリケーションを作成できます。
コメント