如何在 FastAPI 中合理使用 Pydantic 的 Alias
下面的内容是我跟 Gemini 2.5 Pro 探讨关于Pydantic 的 Alias 问题之后,让它总结的一篇技术博客。
我已经有很长一段时间没有好好写技术类的博客了,这就是原因。
作为一名后端开发者,我经常面临的一个挑战是如何优雅地处理外部数据表示(比如 JSON API 中的字段名)与我期望在 Python 代码中使用的内部表示之间的差异。很多时候,前端开发者或者外部服务期望 JSON 键使用camelCase
(驼峰命名),而我那颗 Pythonic 的心则呼唤着snake_case
(蛇形命名)。又或者,我可能需要与一些遗留系统集成,它们使用的字段名可能相当晦涩,我希望能将它们映射到内部更有意义的名称上。
这正是 Pydantic——FastAPI 的数据验证和序列化主力军——凭借其强大的别名功能大放异彩的地方。在这篇博客中,我想和大家分享我对alias
、serialization_alias
、validation_alias
以及强大的model_config
(在 Pydantic V1 中是Config
类)的理解和实践经验,看看它们是如何帮助我驯服这些命名“丛林”的。