API エンドポイント 概要
ベース URL: http://localhost:8000(本番: https://your-domain.com)
認証: Discord OAuth2 セッション Cookie(ideal_bot_session、HttpOnly / SameSite=Lax)
権限レベル
| レベル | 説明 |
|---|---|
| 公開 | 認証不要 |
| 要ログイン | セッション Cookie が必要 |
| 要ギルド権限 | ログイン済み、かつ対象ギルドの MANAGE_GUILD 権限が必要 |
| 要 Bot 管理者 | config.json の bot_admin_ids に登録済みのユーザーのみ |
エンドポイント一覧
認証 (/auth/*)
| メソッド | パス | 権限 | 説明 |
|---|---|---|---|
GET | /auth/login | 公開 | Discord OAuth2 フロー開始 |
GET | /auth/callback | 公開 | OAuth2 コールバック |
POST | /auth/logout | 公開 | ログアウト |
GET | /auth/me | 要ログイン | ログイン中ユーザー情報 |
GET | /auth/guilds | 要ログイン | 管理可能ギルド一覧 |
GET | /auth/bot | 公開 | Bot 情報 |
ギルド (/api/guilds/*)
| メソッド | パス | 権限 | 説明 |
|---|---|---|---|
GET | /api/guilds/{guild_id}/settings | 要ギルド権限 | ギルド設定取得 |
PATCH | /api/guilds/{guild_id}/settings | 要ギルド権限 | ギルド設定更新 |
GET | /api/guilds/{guild_id}/words | 要ギルド権限 | 語彙一覧取得 |
DELETE | /api/guilds/{guild_id}/words/{reading} | 要ギルド権限 | 語彙削除 |
管理者 (/api/admin/*)
| メソッド | パス | 権限 | 説明 |
|---|---|---|---|
GET | /api/admin/settings | 要 Bot 管理者 | グローバル設定取得 |
PATCH | /api/admin/settings | 要 Bot 管理者 | グローバル設定更新 |
GET | /api/admin/guilds | 要 Bot 管理者 | 全ギルド一覧 |
PATCH | /api/admin/guilds/{guild_id} | 要 Bot 管理者 | ギルド有効/無効切替 |
GET | /api/admin/logs | 要 Bot 管理者 | 会話ログ取得 |
GET | /api/admin/fallback-responses | 要 Bot 管理者 | フォールバック応答一覧 |
POST | /api/admin/fallback-responses | 要 Bot 管理者 | フォールバック応答追加 |
DELETE | /api/admin/fallback-responses/{id} | 要 Bot 管理者 | フォールバック応答削除 |
POST | /api/admin/sync-commands | 要 Bot 管理者 | スラッシュコマンド再同期 |
POST | /api/admin/reload-generator | 要 Bot 管理者 | ローカル AI 生成モデル再ロード |
エラーレスポンス
| ステータス | 説明 |
|---|---|
400 | リクエスト不正(パラメータ欠落など) |
401 | 未認証(セッションなし) |
403 | 権限不足(ギルド管理権限なし / Bot 管理者でない) |
404 | リソースが見つからない |
502 | Discord API への接続失敗 |
