Appearance
目录规范
levels/<module>/
├── __init__.py
└── static/ # 可选
└── index.html模块必须项
router = APIRouter()
关卡 API 统一绑定在此 router 上。
关卡索引注入
推荐实现:
python
def set_level_index(index: int) -> None:
global CURRENT_LEVEL_INDEX
CURRENT_LEVEL_INDEX = index若不实现,必须提供 CURRENT_LEVEL_INDEX 变量供框架赋值。
API 约定
入口页面
GET /api/{slug}/通常返回 HTML。
答案验证
POST /api/{slug}/verify推荐返回结构:
json
{ "status": "success", "next_url": "/next", "token": "<jwt>" }或:
json
{ "status": "wrong" }Token 发放规范
- 答对后用
generate_token()生成 token。 level建议传入下一关索引(CURRENT_LEVEL_INDEX + 1)。next_level_slug()用于计算next_url。
静态资源约定
levels/<module>/static/ 自动挂载到 /{slug}。 建议 index.html 内调用 /api/{slug}/verify。