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

我这样做的原因:

  • 现有代码取决于IIS / COM / DCOM / ActiveX / .NET / ASP / ASPX
  • 易于实现和推理
  • 访问控制(Web服务器不需要查看dataLoader代码,并且可以在dataLoader中实现ACL)
  • 如果我有机会与其他数据库(redis,mongodb等)进行接口(interface),将使操作更加轻松
  • 我可以逐渐地分割和移植部分代码,以使代码共享(与单独的Linux服务器)更加容易
  • (我喜欢)Node.js可以开放使用,但尚未加入


  • 首先,这有意义吗?还是我要麻烦?

    在GraphQL和dataLoader之间使用二进制序列化格式是否有意义?也许只是一个简单的Web服务会更简单?
    我是否会因为往返而冒着性能问题的风险? (问题太开放了吗?从直觉上看,这似乎最终会更好地扩展)
    GraphQL和dataLoader之间是否需要显式身份验证?还是我可以按原样发送 session 数据(使用用户名),然后让dataLoader信任作为上下文提供的用户名?也许传递 token ? JWT token 在这里有用吗?

    最佳答案

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

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

    08-19 16:37