graphql - 使用 Hasura 作为数据访问层的最佳和正确方法是什么

标签 graphql nestjs hasura

我只想将 Hasura 用作 NestJs GraphQL 服务器后面的数据访问层,并保留 Hasura 的所有优势,尤其是具有订阅功能的实时功能。

这个想法是构建一个更加定制的 API 并在与 Hasura 交互之前处理所有业务逻辑。

通过这样做,我是否必须自己在 Nestjs 层上处理安全访问,因为我必须使用来自 Nestjs 服务器的 x-hasura-admin-secret 连接到 Hasura 服务器? 您认为使用 Hasura 是一个好方法吗?

是否有其他替代方案可以使用 Hasura 作为可扩展架构中的数据访问层?

谢谢

最佳答案

当然你负责NestJS层的安全性,但我猜你的意思是身份验证。如果这是真的,那么这完全取决于您计划使用的身份验证。

如果您希望使用 JWT 或 Webhooks 来实现身份验证(请参阅此 article 了解说明),我建议让 Hasura 来处理它,在这种情况下,您的附加层将仅将请求转发给 Hasura,而无需需要提供X-Hasura-Admin-Secret

据我所知,人们正在使用他们的 Remote Schemas 将“Hasura 层”添加到他们已经存在的或公共(public)的 GraphQL API 中。要完成的功能Schema Stitching .

我们可以更多地了解您希望添加该图层的原因吗?我非常确定 Hasura 提供了定义自定义查询和聚合查询的方法,并且根据我的经验提供了充足的查询/突变。另外,它还提供您可能会感兴趣的其他功能(订阅、事件...)

关于graphql - 使用 Hasura 作为数据访问层的最佳和正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58222649/

相关文章:

javascript - 如何使用 Apollo-Client 为请求设置超时

javascript - HttpClientXsrfModule 是否仍然需要在服务器上设置 XSRF-TOKEN?

postgresql - 使用 Hasura 在 postgresql 中搜索 jsonb 字段

typescript - 从响应中删除下划线

postgresql - 如何将 .csv 文件导入我的 Hasura PostgreSQL 数据库?

graphql - Upsert Graphql Mutation 与嵌套对象上的冲突约束

javascript - 如何等到设置 cookie?

react-router - 中继/路由器登录突变?

graphql - 尝试在 AWS AppSync 中删除时出错

node.js - Nestjs授权时如何提取JWT