cattrs 的使用是 API 系统内部的 。我们有一个特定的 APIConverter 类,其中注册了一些默认挂钩,还有一个注册表,其他团队可以在其中帮助处理特定的罕见边缘情况 。默认钩子的用途不仅仅是提供各种转换 。在某些情况下,此处注册的挂钩可以充当特定类型的全局验证器 。例如,日期和日期时间类型可以接受各种格式,并且此转换器负责验证这些格式(而不是每个 DTO 都必须验证它),并在出现问题时引发验证错误 。
总的来说,我们对cattrs有一个普通的用法,并且事实证明它是有效的 。
结论我所描述的摘要:
我们的 API 使用 DTO 表示请求正文、查询参数和响应 。
我们包装了 attrs 来简化和标准化开发人员的使用 。
我们采用装饰器和元类等 Python 模式来大规模简化实现、对 API 进行版本控制,并将 DTO 绑定到端点版本 。
用 cattrs 补充 attrs 简化了 DTO 的序列化和反序列化 。
我们对 2022 年初做出的决定感到满意 。与每个端点直接接受和生成 JSON 或字典相比,我们基于 DTO 的方法有助于实现上面提到的愿景:
“Klaviyo 值得拥有一个长期、一致且灵活的 API,它可以在未来几年为 Klaviyo 内部和外部的开发人员提供服务,同时最大限度地减少我们内部开发人员的运营开销,并最大限度地提高我们外部开发人员的一致性和可用性 。”
【使用 *attr* DTO 为我们的 API 提供支持】
推荐阅读
- 使用 SQL 的方式查询消息队列数据以及踩坑指南
- 你是否知道如何使用Python Matplotlib创建令人惊叹的数据可视化?
- Spring为什么建议构造器注入
- 传统机器学习算法在实际业务中的使用场景
- 防止误删除文件/目录:深入探索Linux命令chattr
- ChatGPT的使用教程
- 男士洗面奶怎么洗脸 使用男士洗面奶的方法
- 工业双氧水的作用和使用范围 工业双氧水的危害及注意事项
- 菲洛嘉清洁面膜的使用方法 清洁面膜的使用方法
- 精华液和精华乳的区别 精华液和水乳的正确使用顺序