如何在 Node Js 上为 Rest API 创建一个干净的架构

Posted

技术标签:

【中文标题】如何在 Node Js 上为 Rest API 创建一个干净的架构【英文标题】:How to make a clean architecture for RestAPI on NodeJs 【发布时间】:2014-01-09 10:44:03 【问题描述】:

我正在考虑将一些 REST 服务转移到 NodeJS。我唯一担心的是这种解决方案的架构。

它是否存在于某个指导方针的某个地方?当然,我看到了一些像 restify 这样的库。这是一个好的开始,但还不够。

我正在寻找层的分离、依赖注入、单元测试、csrf 等等。

【问题讨论】:

restify 怎么算“不够”?可以使用许多测试工具编写测试mocha,jasmine .. RestAPI、NodeJs 和任何框架都只是工具,而不是架构......youtube.com/watch?v=WpkDN78P884 【参考方案1】:

看这里:http://nodeframework.com/

这是用于各种用途的 Nodejs 框架列表。你会显示网页吗?您可能会选择其中一种 MVC 模型。只是创建一个 API?您只需要其中一个 REST API 框架。

日志记录、单元测试、文档样式等的选择并不特定于 Node(尽管它相对较新)。有多个单元测试框架、日志框架、文档样式/框架等。这适用于 Node 以及 Java、C++ 和其他流行语言。这些框架的开发人员试图让他们的软件“轻松”地使用——因为您不会被多个依赖项束缚,可以交换其他部分,轻松集成等等。

如果您正在寻找一体化解决方案,我怀疑您会找到它。因为每个人都有不同的品味,解决方案的每个部分都有几个选项,您可以选择适合您(以及您的要求/客户)的部分。 这一次行得通的可能不是下一次的最佳选择。

我建议在网上寻找一个与您尝试做的事情相近的示例,然后按照他们的示例或从他们的演示中构建,使用相同的模块。

编辑:在第一个链接之后,有一个来自 Joyent here 的已弃用框架列表。

Edit2: Joyent 列表中的This particular part 可能对您有用。 也许“样板”样式的模块会帮助您进行搜索。

【讨论】:

【参考方案2】:

您可以查看此帖子: https://solidgeargroup.com/clean-architecture-in-nodejs

讨论了清洁架构的一些模式,例如创建适配器层以将业务逻辑与框架隔离,使代码更具可重用性和可测试性..

包含用于连接 REST 和 GraphQL API 的代码示例。也用于单元测试和 mongo db 连接

【讨论】:

【参考方案3】:

看看这个:https://github.com/neiesc/ListOfMinimalistFrameworks#web-framework-for-nodejs

我使用过 express 和 Koa,它们都非常适合 REST 架构。

还有 Restify 和许多其他框架,可以轻松构建干净的 REST API。

这些框架中的大多数都支持测试、依赖注入等。我建议尝试 Express.js,因为它是最好的。

【讨论】:

以上是关于如何在 Node Js 上为 Rest API 创建一个干净的架构的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MobileFirst Foundation 8 中使用 REST API 从 Node.js 发送推送通知?

Node.js 通过 REST API 发送图像

Node JS在rest api响应中返回图像[关闭]

如何为 Node JS 设置 REST API

编写 Node.js Rest API 的 10 个最佳实践

使用 OAuth 和 Node.JS 对 JIRA REST API 进行身份验证