Files
Auto_Bangumi/docs/ja/dev/plugins/points/api-router.md
Estrella Pan 3258fcca4b docs(4.0-P7): 插件开发文档拆分为总览加每个扩展点一页,补齐中英日三语
- docs/dev/plugins.md 改为总览与导航,旧内容拆入 docs/dev/plugins/
- 新增核心概念、配置表单、事件、前端挂载点、命令行、签名与分发、内置插件、示例页
- 每个扩展点一页,侧边栏由页面表生成
- 改正旧文档中下载器配置、hardlink path_map 与补链按钮的过时描述
2026-10-08 14:51:00 +02:00

25 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# REST ルート (api_router)
プラグインに HTTP エンドポイントを追加します。フロントエンドコンポーネントのバックエンドとしてよく使われます。`@provider(points.API_ROUTER, id=...)` は `fastapi.APIRouter` を返します。
```python
from fastapi import APIRouter
@provider(points.API_ROUTER, id="api")
def api(self):
router = APIRouter()
@router.get("/stats")
async def stats():
return {"count": await self.ctx.kv.get("count", 0)}
return router
```
- ルートは `/api/v1/plugins/<プラグイン id>/` の下にマウントされます。上の例は `GET /api/v1/plugins/my-plugin/stats` です。`id` はプラグイン内で一意であれば十分です。
- **プラグインのルートはすべてログインが必須です。** WebUI の他のエンドポイントと同じ認証情報(セッション Cookie、または `scope=api` の API トークン)を使います。プラグインは匿名のエンドポイントを登録できません。ログインしていないリクエストには 401 を返します。
- ルートは、プラグインを有効にすると現れ、無効にすると消えます。再起動は不要です。1 つのプラグインが複数の `API_ROUTER` を提供でき、AB は同じプレフィックスの下にまとめます。
- ハンドラーが `HTTPException` を送出すると、そのステータスコードを返します。それ以外の例外は 500 を返し、ブレーカーに数えられます。
- プラグインのルートは `/docs` の OpenAPI ドキュメントには表示されません。
- 予約パス:`web/`(フロントエンドの静的ファイル)、`install`、`catalog`([署名と配布](/ja/dev/plugins/signing) を参照)はルートのパスに使えません。