可运行示例

验证不可信边界请求体

使用字段规范化与结构化错误契约,清洗并验证混乱的外部数据载荷。

Intermediate10–15 minWeb 与 APIPython 3.12+ · Standard library only

问题

来自 webhook、移动端和 LLM 工具调用的外部载荷都不可信:键名驼峰下划线混杂、金额字符串带脏字符、枚举状态非法。生产级边界必须清洗合法变体并返回结构化错误,而不是崩溃。

任务契约

  1. 接受驼峰与下划线混杂的键名,规范化为统一的字段形态。
  2. 转换前清洗脏金额字符串,拒绝不可能的数值。
  3. 在边界校验必填字段与枚举状态。
  4. 返回指明失败字段与原因的结构化错误契约。

本地验证

FlyPython 仓库根目录下,先复现 starter 的失败,再验证审校过的 solution:

python examples/pydantic-validation/verify.py starter --expect-failure
python examples/pydantic-validation/verify.py solution

交给 coding agent

  1. 克隆仓库,用上面的命令复现 starter 失败。
  2. 任务契约 ↗交给你的 coding agent,只允许修改 starter/validator.py
  3. 运行 python examples/pydantic-validation/verify.py starter,任何失败都视为未完成。
  4. 参考实现 ↗对比补丁——目标是同样的契约配最小可读的 diff,而不是相同的语法。

继续

这个示例在学习路线中的位置。

审校日期 2026-09-02 · 仓库内容版本 1。可以继续阅读对应学习路径、浏览仓库目录,或阅读 MCP 迁移指南了解规范背景。