graphql-yoga - GraphQL 解析器参数在哪里定义和记录?

Posted

技术标签:

【中文标题】graphql-yoga - GraphQL 解析器参数在哪里定义和记录?【英文标题】:graphql-yoga - where are GraphQL resolver arguments defined and documented? 【发布时间】:2019-08-07 08:22:25 【问题描述】:

我已经看到几个来源描述了 graphql-yoga 解析器的 (root, args, context, info) 参数,但我仍在寻找 graphql-yoga 解析器的真实文档。有几篇博文提到了解析器参数:

    prisma blog - Feb 2017 - GraphQL Schemas, TypeDefs & Resolvers Explained prisma blog - Feb 2018 - Demystifying the info Argument in GraphQL Resolvers

我知道prisma 通过graphql-toolsgraphql.js 上构建了graphql-yoga,并且似乎graphql.js documents these parameters at graphql.org - Root fields & resolvers,但尚不清楚graphql.org 是否是graphql.js 的主要位置已记录在案,即使是,我也不清楚作为graphql-yoga 的用户,我应该遵从graphql.js 的文档。

另外,prismaapollo-server上构建了graphql-yogaapollo-server 的文档在这里最适用吗?

这些参数似乎不是 GraphQL 规范的一部分。

graphql-yoga 解析器参数的真实文档在哪里?如果这不可用且没有记录,那么 graphql-yoga 源中的哪个函数期望参数采用这种形式?

【问题讨论】:

为什么投反对票?我已经真诚地努力正确使用堆栈溢出来解决这个问题 - 请解释为什么你认为这个问题不合适。甚至还有一个堆栈溢出元问题,它肯定了关于文档的精心编写的问题:meta.***.com/questions/288008/… 【参考方案1】:

TL;DR

要与graphql-yoga 一起使用,您可能需要在graphql-tools section for Resolver function signature 中关注apollo-server 的解析器文档。

详情

要知道使用哪些文档,需要了解完整的技术堆栈:prisma 在 apollo 的工具之上构建了东西,而后者又构建在 GraphQL 的参考实现之上,graphql.js .此堆栈的每一层都有一个单独的文档站点。

您可以从 graphql-yoga README 中追踪,它说它是基于 apollo-server 构建的,而 apollo-server 自己的 README 反过来说:

Apollo Server 可与使用 GraphQL.js 构建的任何 GraphQL 架构一起使用,因此您可以直接使用它或使用方便的库(例如 graphql-tools)来构建架构。

所以graphql-yoga 是apollo-server 的一种固执己见的、包含电池的形式,它从graphql.js 获取模式,但可能与apollo 自己的graphql-tools 指定的模式更无缝集成。

【讨论】:

以上是关于graphql-yoga - GraphQL 解析器参数在哪里定义和记录?的主要内容,如果未能解决你的问题,请参考以下文章

Prisma GraphQL-Yoga:解析器需要异步吗?

Type as property 使用 graphql-yoga 和 prisma 解析为 null

javascript 查询e解析器简单com graphql-yoga

使用 Mongoose 和 graphql-yoga 实现分页

无法通过 Prisma 在 GraphQL-yoga 中使用片段

如何关闭graphql-yoga服务器?