Skip to content

目录规范

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