简体中文 · 繁體中文 · 日本語 · English · 한국어
アズールレーンサーバー状態確認 API。全 7 地域・計 81 サーバーのリアルタイム状態を照会し、フロントエンド/ダッシュボードからのポーリングに対応します。
uv run uvicorn main:app --host 0.0.0.0 --port 8000API ドキュメント:http://localhost:8000/docs
| メソッド | パス | 説明 |
|---|---|---|
| GET | / |
キャッシュ診断ダッシュボード(サーバーサイドレンダリング、JS なし) |
| GET | /api/v1/status |
全/指定地域のサーバー詳細 |
| GET | /api/v1/summary |
状態別の件数集計 |
| GET | /api/v1/regions |
対応地域一覧 |
| GET | /api/v1/regions/{key} |
単一地域の詳細 |
| GET | /api/v1/servers/{region}_{id} |
単一サーバー(例:cn_28、cn_ios_1) |
| GET | /healthz |
死活プローブ |
- フレッシュウィンドウ 8 秒:ヒット時は直接返却し、ネットワークリクエストを送らない
- 期限切れ後:次の照会で一度だけ更新(lazy)をトリガーし、並行リクエストは single-flight で合流
- 継続的に照会なし:バックグラウンドタスクが 5 秒ごとにキープアライブ更新し、キャッシュは期限切れにならない
- 更新失敗:古いキャッシュ(期限切れ含む)を再利用 +
errorマーク;キャッシュがない場合のみエラー
- 同一 IP から並行 10 を超えると
429を返す(ASGI ミドルウェア、完全非同期カウント) - クライアントはキャッシュを迂回できない(
refreshパラメータなし)。キャッシュ自体がレートリミット層
uv run --group dev pytest tests/server_status_api/
├── main.py # FastAPI アプリ、エンドポイント、レートリミットミドルウェア
├── checker.py # プロトコル層:REGIONS 設定、TCP protobuf / HTTP JSON 照会(全面非同期)
├── cache.py # 地域別 TTL キャッシュ + single-flight + バックグラウンドキープアライブ更新
├── models.py # Pydantic レスポンスモデル
└── tests/ # キャッシュ単体テスト + API エンドポイントテスト(mock、実際のネットワークリクエストなし)