首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GqlGen -在字段解析器中访问查询输入参数

GqlGen -在字段解析器中访问查询输入参数
EN

Stack Overflow用户
提问于 2022-09-29 15:07:44
回答 1查看 210关注 0票数 2

在使用GqlGen生成代码之后,已经创建了一些字段解析器方法。我需要访问字段解析器中的查询输入参数,但我不确定如何访问它。我需要从上下文中获取这些值吗?或者还有别的办法吗?

查询解析器:

代码语言:javascript
复制
func (r *queryResolver) Main(ctx context.Context, device string) (*models.Main, error) {
...
}

野外救援器:

代码语言:javascript
复制
// Version is the resolver for the version field.
func (r *mainResolver) Version(ctx context.Context, obj *models.Main) (*models.Version, error) {
        // I NEED TO ACCESS device param here which is passed in Main method
    panic(fmt.Errorf("not implemented: Version - version"))
}

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-29 18:48:46

我认为您可以在父解析器的FieldContext中找到参数。您可以通过这样的graphql.GetFieldContext获得它:

代码语言:javascript
复制
// Version is the resolver for the version field.
func (r *mainResolver) Version(ctx context.Context, obj *models.Main) (*models.Version, error) {
    device := graphql.GetFieldContext(ctx).Parent.Args["device"].(string)
    // ...
}

字段Args是一个map[string]interface{},所以您可以按名称访问参数,然后键入-assert它们应该是什么。

如果这不起作用,也可以尝试使用graphql.GetOperationContext,它基本上是无文档的.(贷记@Shashank Sachan)

代码语言:javascript
复制
graphql.GetOperationContext(ctx).Variables["device"].(string)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73897814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档