api - SaaS API 选择什么语言?

标签 api user-interface programming-languages saas

我在一家小型组织工作,该组织构建了企业 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/

相关文章:

php - 使用 php/curl、linux 的 HTML5 横幅屏幕截图

javascript - 维梅奥 API。 SetVolume 方法出现问题

java - 从 JTextArea 清除附加文本

python - 使用 Perl TK 或 Python Tkinter 的自定义窗口

api - 获取opentsdb中所有标签的指标的最新/最新值

android - 跟随用户的 map View - Android Maps API v2 的 MyLocationOverlay 类型功能

linux - 为 Linux 开发

c++ - 如何简化嵌套循环?

c++ - 在C++中为全局变量赋值

c - 编写文本编辑器时保存数据的好方法