apollo graphql 传递参数来解析函数

Posted

技术标签:

【中文标题】apollo graphql 传递参数来解析函数【英文标题】:apollo graphql pass arguments to resolve function 【发布时间】:2016-12-12 03:41:54 【问题描述】:

我有一个包含相关类别和标记的架构

type Category 
    id: Int
    name: String
    parent: Category
    children: [Category]
    markers: [Marker]


type Marker 
    id: Int
    name: String
    categories: [Category]


type Query 
  category(limit: Int, offset: Int): [Category]
  marker(limit: Int, offset: Int): [Marker]


schema 
  query: Query

我现在可以编写这样的查询:

query
  category(limit: 3)
    name
    markers
      name

    
  

我如何也可以为标记定义可能的参数? -->

  query
      category(limit: 3)
        name
        markers(limit: 3)
          name

        
      
    

所以我可以在解析器中使用参数 -->

        export const resolvers = 
            Query: 
                async category(root, args, context) 
                    return Categories.findAll(limit: args.limit, offset: args.offset);
                ,
                async marker(root, args, context) 
                    return Markers.findAll(limit: args.limit, offset: args.offset);
                ,
            ,
            Category: 
                async markers(category)
                    return category.getMarkers();
                
            
    

即我可以将它传递给查询解析器,因为它是在架构中定义的,但我不能将它应用于类别类型中的标记解析器

【问题讨论】:

我不是专家,但您可能想查看查询变量 【参考方案1】:

您可以将查询变量放在架构中的任何位置,而不仅仅是***:

https://learngraphql.com/basics/query-variables/3

【讨论】:

以上是关于apollo graphql 传递参数来解析函数的主要内容,如果未能解决你的问题,请参考以下文章

如何在反应js中将graphql列表传递给apollo中的突变

Apollo-server 2 验证中间件

Apollo GraphQL:增强而不是覆盖默认解析器行为

Graphql apollo 服务器解析器参数类型

GraphQL 通过将其作为解析参数之一传递来查询数据库

将参数传递给子节点解析器函数