用途:在创建或修改 Python HTTP 服务器、添加认证、结构化日志与指标时,按该技能搭建生产级 FastAPI 服务。
主要能力:JWT 认证(HTTPBearer + python-jose 校验,require_claims 依赖注入返回 claims);structlog 结构化日志(可切换 JSON 或控制台渲染,支持 LOG_LEVEL、LOG_JSON、SERVICE_NAME 环境变量,并绑定 service 上下文);Prometheus 指标(prometheus-fastapi-instrumentator 自动埋点并暴露 /metrics);lifespan 管理启动/关闭;/healthz 健康检查与 /whoami 认证示例端点。
使用方式:安装依赖 uv add fastapi "uvicorn[standard]" "python-jose[cryptography]" prometheus-fastapi-instrumentator structlog;创建 .env.server 设置 AUTH_SECRET、LOG_LEVEL、LOG_JSON;用 Makefile 的 run-server 目标加载环境并执行 uv run uvicorn main:app --host 0.0.0.0 --port 8000。测试认证可先用 jose 生成 HS256 测试令牌,再 curl -H "Authorization: Bearer <token>" http://localhost:8000/whoami。
关键模式:用 @asynccontextmanager 处理启动/关闭而非废弃的 on_event;用 Depends() 注入认证、数据库连接等共享资源;structlog 在模块级配置一次并按请求绑定上下文;始终暴露 /healthz 供 k8s 探针使用。
限制:资料未提供部署、收费、性能或平台支持等细节;AUTH_SECRET 默认值为 change-me,生产环境需替换为强密钥。修改服务器后应同步更新相邻 README.md 以反映当前 API。