【问题标题】:What language to choose for SaaS API?为 SaaS API 选择什么语言?
【发布时间】:2013-03-19 10:23:55
【问题描述】:

我在一个构建了企业 SaaS 解决方案的小型组织中工作。到目前为止,我们的工作流程还没有编程接口。我们正在转向一种模型,该模型允许最终用户以编程方式执行任何可以在 UI 中完成的操作。我正在寻找有关您将用于构建该编程层的语言/框架的建议。

从组织的角度来看,我希望当前的 UI 团队也拥有 API 的所有权。该团队熟悉 PHP、Rails 和 Javascript。我们当前的后端代码是用 Scala 编写的。我倾向于不在 Scala 中开发 API,因为它似乎不是适合这项工作的工具,而且 UI 团队缺乏围绕它的主题专业知识。

从功能的角度来看,大多数 API 将是相当简单的数据库操作 (CRUD),可能会在顶部应用一些简单的业务逻辑(例如搜索)。

我对为此使用 Node.js 有点兴趣,因为团队中的每个人都非常擅长使用 Javascript。话虽如此,我不只是想跳上半新技术的潮流。因为它是企业软件,所以单元测试框架、可重用性和可扩展性也是重要的考虑因素。

有什么建议吗?

【问题讨论】:

    标签: api user-interface programming-languages saas


    【解决方案1】:

    我知道这个问题是关于技术选项的,但有一个基本问题似乎非常重要:

    从组织的角度来看,我希望当前的 UI 团队也拥有 API 的所有权。

    虽然这听起来像是一种合乎逻辑的方法,但除非您的 UI 团队是由真正扎实的工程师组成的,否则它可能效果不佳。 SaaS API 开发可以说是现代软件设计中最具挑战性的方面之一。一个好的 API 会让每个人的生活更轻松,而一个糟糕的 API 会让你的系统崩溃,让你完全不知道为什么。

    举个简单的例子,如果您没有以正确的方式解决最终用户的需求,您可能会向他们(也就是您)强加多个n+1 problems

    有很多关于how to design great APIs 的优秀材料,甚至更多关于设计一个糟糕的陷阱的内容。一般来说,我合作过的大多数 UI 开发人员,尤其是那些只熟悉脚本语言的开发人员,都不是我会委托进行 API 设计的人。相反,我会将他们用作客户(在 Scrum 意义上),他们通过描述最终用户的需求来指导设计。

    【讨论】:

      【解决方案2】:

      我在之前的项目中遇到过类似的情况,我们最终使用了Esper 和我们自己使用ANTLR 3.0 编写的 DSL 的组合。对于使用全功能运行时,我们最大的担忧是对用户代码进行沙盒处理。

      也就是说,我认为 Node.JS 将是更容易进行沙箱处理的一种,它符合您的需求。也许使用这样的东西:http://gf3.github.com/sandbox/ 或查看Cloud9's code 以了解他们如何保证安全。我也喜欢 Node.js,您可以使用 Ace 为您的用户提供一个非常漂亮的编辑器。

      也可以看看这篇文章:How to run user-submitted scripts securely in a node.js sandbox?

      【讨论】:

        猜你喜欢
        • 2016-06-11
        • 2014-11-23
        • 1970-01-01
        • 2022-12-10
        • 1970-01-01
        • 2017-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多