我在一家小型组织工作,该组织构建了企业 SaaS 解决方案。到目前为止,我们的工作流程还没有编程接口(interface)。我们正在转向一种模型,该模型允许最终用户以编程方式执行可以在 UI 中完成的任何操作。我正在寻找有关用于构建该编程层的语言/框架的建议。
从组织角度来看,我希望当前的 UI 团队也拥有 API 的所有权。该团队熟悉 PHP、Rails 和 Javascript。我们当前的后端代码是用Scala 编写的。我倾向于不在 Scala 中执行 API,因为它似乎不是适合这项工作的工具,而且 UI 团队缺乏围绕它的主题专业知识。
从功能角度来看,大多数 API 将是相当简单的数据库操作 (CRUD),可能会在顶部应用一些简单的业务逻辑(例如搜索)。
我对使用 Node.js 来实现这一点有点感兴趣,因为团队中的每个人都非常擅长 Javascript。话虽这么说,我不仅仅是想搭上半新技术的潮流。因为它是企业软件,所以单元测试框架、可重用性和可扩展性也是重要的考虑因素。
有什么建议吗?
最佳答案
我意识到这个问题与技术选择有关,但有一个基本问题似乎非常重要:
From an organizational perspective I would like the current UI team to also have ownership of the API.
虽然这听起来像是一个合乎逻辑的方法,但除非您的 UI 团队由真正可靠的工程师组成,否则它可能不会很好地发挥作用。 SaaS API 开发可以说是现代软件设计中最具挑战性的方面之一。一个优秀的 API 会让每个人的生活变得更轻松,而一个糟糕的 API 会让你的系统崩溃,让你完全不知道为什么。
举个简单的例子,如果您没有以正确的方式解决最终用户的需求,您可能会强制执行许多 n+1 problems对他们(因此,对你)。
有很多关于 how to design great APIs 的精彩 Material 。甚至更多关于设计糟糕的设计的陷阱。一般来说,我合作过的大多数 UI 开发人员,尤其是那些只熟悉脚本语言的开发人员,都不是我会委托(delegate)进行 API 设计的人。相反,我会将他们用作客户(在 Scrum 意义上),通过描述最终用户需求来指导设计。
关于api - SaaS API 选择什么语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15496841/