在单独的应用程序/服务器上的GraphQL和dataLoader

时间:2016-03-06 11:35:40

标签: javascript c# asp.net node.js graphql

我计划在IIS上使用.NET中的GraphQL API,在Node.js应用服务器上实现dataLoader API。 GraphQL将与dataLoader连接到SQL Server 目前,所有应用程序都将位于单个物理服务器上,但如果可扩展性需要,将来可能会分开。

我的理由:

  • 现有代码依赖于IIS / COM / DCOM / ActiveX / .NET / ASP / ASPX
  • 更易于实施和推理
  • 访问控制(Web服务器不需要查看dataLoader代码和ACL可以在dataLoader中实现)
  • 如果我有机会与不同的数据库(redis,mongodb等)进行交互,那么会更容易
  • 我可以逐步切片和移植部分代码,以便更轻松地共享代码(使用单独的Linux服务器)
  • (我喜欢)Node.js开放探索,但无法选择加入

首先,这是否有意义,还是我在寻找麻烦?

在GraphQL和dataLoader之间使用二进制序列化格式是否有意义?或者只是一个简单的网络服务会更简单? 我是否会因为更多的迂回行为而面临性能问题? (问题太开放了?直观地看起来这最终会扩大规模)
GraphQL和dataLoader之间是否需要显式身份验证?或者我可以通过原样发送会话数据(使用用户名),并让dataLoader信任作为上下文给出的用户名?也许通过令牌? JWT令牌在这里有用吗?

1 个答案:

答案 0 :(得分:0)

GraphQL-dotnet从那时起已经成熟了一些,并且看起来还不错。
此后,我研究了诸如AWS的API Gateway GraphQL支持的解决方案以及一些支持GraphQL的Azure函数解决方案。

其中涉及的某些技术和设计选择在这里和那里都是有帮助的。但是由于实际原因,这从来没有真正实现过,大多数这些关注也从未变得有意义。