从Node.js中的多个数据源中包装API

时间:2015-12-07 04:05:43

标签: node.js datasource middleware loopbackjs graphql

我现在正在为基于Node.js的新项目开发中间件层。它需要从纯后端API(RESTful API)和#34;中检索数据。和一些数据库(MongoDB,MySQL等),然后将这些数据与一些条件过滤器混合,并作为所有客户的新API公开。

此时,我只是将这些数据getter包装为Promises并过滤我需要的数据。但我想知道是否有任何优雅的解决方案满足这些要求。

这里有一些方法候选人:

  • LoopBack :LoopBack框架可以定义超出多个数据源的模型。但是,LoopBack似乎只支持"模型级别"多个数据源,并且不支持"字段级别"数据源,这意味着我们无法使用数据库中的某些字段定义特定模型,而使用RESTful API定义其他字段。

  • GraphQL :我是GraphQL的新手,但似乎GraphQL可以为RESTful API和数据库提供一些连接器。

感谢任何其他包或图书馆!谢谢大家!

1 个答案:

答案 0 :(得分:1)

这是GraphQL的一个很好的用例。

在详细介绍之前,请注意,GraphQL最适合用于某种GraphQL客户端,特别是如果您使用React,则使用Relay。如果您还没有GraphQL客户端,您仍然可以使用GraphQL(它毕竟是简单的HTTP GET / POST),但是与纯REST相比,您构建的查询需要更加笨重 - - 但是,作为回报,你会获得更好的灵活性!

GraphQL非常复杂,这里有一些指示:

GraphQL绝对是一项重大投资,请确保您有时间研究它。它还很新,所以你还没有找到太多推荐的做法。