GraphQL LogoGraphQL

The Guild 问答环节的见解

2023 年 6 月 20 日 由 Jory Burson 撰写

在快节奏的软件开发领域,紧跟最新技术和最佳实践至关重要。GraphQL 作为一种 API 查询语言,凭借其灵活性和高效的数据获取能力,赢得了广泛的认可。为了深入了解 GraphQL 的领域及其影响,最近与开源贡献者组织 The Guild 成员进行的问答环节提供了宝贵的见解和建议。让我们一起探索本次问答环节的亮点,更好地理解 GraphQL 的强大功能。

开源组织的理念和结构

在问答环节中,The Guild 成员强调,他们组织的创建是为了实现长期开源维护的主要目的。这一决定导致该组织以不同的方式构建团队工作,例如将所有项目放在个人贡献者的名下,而不是放在 Guild 的 GitHub 组织 下,例如 YogaMesh其他

他们还专注于招聘在加入 The Guild 之前已经是社区贡献者的人,以确保他们支持现有的开源贡献者,并减少选择过程中的偏见(通过关注个人的工作,而不是他们的位置或身份)。这导致了一个来自全球各地的多元化团队,他们在 关于页面 中对此模式进行了更多阐述。

在问答环节中,The Guild 强调了他们对本地 Meetup 小组的支持,以及他们帮助创建新小组的历史。这种对社区参与的承诺反映了他们致力于促进知识共享和协作,这对可持续的开源项目至关重要。

使用 Envelop 进行授权和屏蔽

The Guild 团队建议使用 Envelop,这是一种插件系统,可以操纵执行流程,用于 GraphQL API 中的授权和屏蔽。这种方法提供了一种强大的替代方案,可以替代直接包装解析器,确保强大的安全措施到位。通过利用 Envelop,开发人员可以增强其 GraphQL API 中的授权控制。

使用 Postgres 的行级安全进行细粒度授权控制

除了 Envelop 之外,讨论还强调了使用 Postgres 的行级安全作为实现更细粒度授权控制的一种手段。此功能允许开发人员在数据库级别定义安全策略,确保只有授权用户才能访问特定数据行。通过整合 Postgres 的行级安全,开发人员可以进一步加强其 GraphQL API 防御未经授权的访问。

"非规范" GraphQL 和 Envelop/Yoga 插件的优势

讨论还涉及使用“非规范” GraphQL 功能的好处。使用 Envelop,您可以安全地使用 高级 GraphQL 功能,然后再将其包含在官方规范中,而官方规范的发布频率较低。

这些工具提供了额外的功能和优化,使开发人员能够最大限度地发挥 GraphQL 在其项目中的潜力。The Guild 团队强调了探索这些选项以提高性能和简化开发流程的价值,同时还向 GraphQL 工作组 提供有关这些功能的宝贵反馈。

缓存 GraphQL 操作

会议参与者提出了关于缓存 GraphQL 操作的有趣观点。The Guild 团队承认在 GraphQL 请求中添加缓存的潜在优势,优化响应时间并减少不必要的网络流量。有人指出,与 REST 相比,GraphQL 可以实现更细粒度的缓存,人们认为 GraphQL 中缓存更难的主要原因是缺乏对 StellateYoga 的响应缓存支持 等工具的了解。

大规模 GraphQL 工作流程

在讨论 GraphQL 的大规模使用时,The Guild 参与者提到了他们帮助大型团队使用工作流程和工具管理 GraphQL API 的一些工作,这些工具使用诸如 GraphQL Hive 之类的工具,这是一个开源模式注册表。一些 最近发布到 Hive 的新功能,例如 模式策略功能,使组织能够自动在许多不同的团队中强制执行最佳实践和模式规则。

社区管理和未来合作

The Guild 团队承认社区贡献的重要性,并讨论了他们为改进和简化 GraphQL 社区网站 所做的努力,并强调了培养充满活力和包容性的 GraphQL 社区的必要性。与 The Guild 的问答环节提供了大量关于 GraphQL 世界的知识和见解。此外,会议还强调了改进领域和社区成员做出贡献的机会。有关更多信息,请查看 The Guild 的项目博客 以及我们的 GraphQL 官方社区页面

随着 GraphQL 生态系统的不断发展,像这样的会议为开发者提供了宝贵的指导,并培养了开发者之间的社区意识,为我们激动人心的生态系统中的创新和增长铺平了道路。请加入我们于 6 月 28 日参加我们的下一场Discord 问答会议,届时将有来自 Hasura 的工程领导者参与。