如何在 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 发送推送通知?