APIクライアントの利用
このガイドでは、AiotraQを用いた API クライアントの利用方法について紹介します。
API Client の作成
AuthenticatedClientを用いて API クライアントを作成し API を叩くことができます。
一度 with を使ってクラアントを使用すると、終了後に自動でクライアントが閉じられます。再度利用する場合は、AuthenticatedClientを再度作成してください。
import os
from aiotraq import AuthenticatedClient
from aiotraq.api.channel import get_channels
BOT_ACCESS_TOKEN = os.getenv("BOT_ACCESS_TOKEN")
assert BOT_ACCESS_TOKEN is not None
client = AuthenticatedClient(base_url="https://q.trap.jp/api/v3", token=BOT_ACCESS_TOKEN)
with client as client:
channels = get_channels.sync_detailed(client=client)
print(channels.status_code)
API の利用例: チャンネル一覧の取得
with client as client:
channels: ChannelList = get_channels.sync(client=client)
# status_code などの情報も利用したい場合
response: Response[ChannelList] = get_channels.sync_detailed(client=client)
備考
sync_detailed/async_detailedを利用することで、レスポンスの情報も取得することができます。
ステータスコードやヘッダー情報などを取得したい場合は、_detailed付きのメソッドを利用してください。
非同期 API の利用
asyncioまたはasyncio_detailedを利用することで、非同期で API を叩くことができます。
with client as client:
channels: ChannelList = await get_channels.asyncio(client=client)
response: Response[ChannelList] = await get_channels.asyncio_detailed(client=client)
各メソッドの違い
以下に各メソッドの違いを示します。
API のエンドポイントによって、sync/asyncioを持たず、detailed付きの関数のみを持つ場合もあります。
sync: 成功した場合に解析済みデータを返し、そうでない場合はNoneを返すブロッキングリクエストsync_detailed: 成功した場合にはオプションでparsedを持つRequest型 を返すブロッキングリクエストasyncio: ブロッキングではなく非同期で動作する。syncと同様のリクエストasyncio_detailed: ブロッキングではなく非同期で動作する。sync_detailedと同様のリクエスト