用于公开 ORM 方法的可扩展且快速的 REST API

标签 scala rest orm functional-programming

我需要开发 REST API 以将 CRUD 操作公开给数据库和一些业务逻辑。我更喜欢这个模块是独立的、快速的、可扩展的和灵活的(没有不必要的模块提供我不需要的功能,以降低维护成本)。

发展偏好:
- 进行类型检查的框架/语言
- 具有良好的 ORM 映射
- 具有良好的 TDD/BDD 支持
- 函数式语言

我想知道诸如 squeryl 和 blue eyes 或 squeryl 和 spary 之类的 scala 模块的某种组合是否可以达到目的,但它不一定是 scala。有什么想法吗?

最佳答案

你所描述的情况当然是可能的。我没有任何使用 Spray 或 BlueEyes 的经验,但我确实使用过 Squeryl + Play,并且它可以做你想做的事情。它可能提供您不需要的模块,但如果您不使用它们,这些模块不会增加维护成本。

最大的问题是大多数(如果不是全部)Scala 框架都是围绕异步编程模型设计的(实际上大多数其他高可扩展性框架也是如此,例如 Node.js)。另一方面,ORM 通常是围绕同步编程模型构建的。但是,您可以通过一些粘合代码、一些防御性编码和一些仔细的调整(这就是我们所做的)来解决这种不匹配问题。

更激进的替代方案是将 ORM 替换为 MongoDB 或 CouchDB 等文档数据库(文档数据库通常具有合理的异步驱动程序)。

关于用于公开 ORM 方法的可扩展且快速的 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15927258/

相关文章:

scala - "illegal cyclic reference involving object InterfaceAudience"使用 Scala 2.11 反射时

Java/Scala资源消耗和负载

java - 如何在一个 Controller 中解决两个 POST 方法

python - SQLAlchemy中,dict更新方法如何与ORM交互?

php - Laravel 5 获取三级关系

scala - Spark 克里奥 : Register a custom serializer

scala - 要么T : Call function returning Either only if a certain condition is true (otherwise return right)

java - 在 Spring REST 中发送 jsp 响应以及状态代码

javascript - 从后端(Java/Jersey/REST)发送数据到前端(Angular JS)

java - Hibernate - 在 OneToMany 上使用 JOIN 时 sqlQuery 映射冗余记录