已发布 — Schema 支持、更简洁的内部结构与下一步
Source: Dev.to
RunAPI 刚刚获得了一次重要升级。
最新版本引入了 schema 支持,改进了内部架构,并为更好的测试和数据库可扩展性奠定了基础——同时保持 RunAPI 轻量且对开发者友好。
如果你在使用 Python 构建 API,并且喜欢 基于文件的路由 + FastAPI,那么这次发布非常适合你。
✨ 本次发布的新特性
✅ Schema 支持(重磅)
RunAPI 现在支持 schemas,让以下工作更容易:
- 定义请求和响应模型
- 一致地验证输入
- 随着项目增长保持 API 结构化
这让 RunAPI 更贴近真实生产需求,同时仍保持简洁。
🧹 代码质量改进
多项内部改进已合并,以清理代码:
- Python 3.12 兼容性修复(
datetime.utcnow()→datetime.now(timezone.utc)) - 更安全地处理非 Pydantic 模型
- 移除已废弃的 Pydantic v1 用法
- 更好的模块加载安全检查
- 更简洁的路由名称生成
这些更改不影响公共 API,但使 RunAPI 更稳健、更具前瞻性。
🗄️ 存储:内存 + SQLAlchemy(可选)
RunAPI 目前支持 两种存储后端:
- InMemory 存储(默认,无额外依赖)
- SQLAlchemy 存储(仅在安装了 SQLAlchemy 时使用)
如果未安装 SQLAlchemy,RunAPI 会优雅地回退到内存存储——不会崩溃,也不会出现意外。
这使得 RunAPI:
- 默认轻量
- 对更严肃的使用场景保持灵活
🧠 我们接下来要改进的方向
在实现 schema 支持后,接下来的重点包括:
🔍 更好的测试覆盖
- 针对 schemas 的更多测试
- 路由和认证的边缘案例测试
- 随着功能增长提升信心
🧩 清晰的存储抽象
虽然 InMemory 和 SQLAlchemy 后端已经存在,但我们希望:
- 拥有明确的共享接口
- 更简洁的后端选择机制
- 更容易的未来扩展(如 Redis 等)
📚 更好的文档与示例
- Schema 使用指南
- 存储行为的清晰说明
- 真实场景的 CRUD 示例
🤝 想要贡献?
RunAPI 仍在不断演进,非常欢迎贡献。
可以从以下方向入手:
-
测试 🧪
-
文档 📖
-
存储抽象 🗄️
-
示例与模板 🧱
-
GitHub 仓库:
-
Issues:
🏁 最后感想
这次发布更侧重于 打下坚实的基础,而非炫目的功能。
- Schemas 解锁了更安全的 API。
- 更清晰的内部实现加速了开发。
路线图保持 RunAPI 的灵活性而不致臃肿。如果你尝试使用,欢迎随时提供反馈 🙌
祝构建愉快! 🚀