在 GraphQL 查询中插入变量值

Posted

技术标签:

【中文标题】在 GraphQL 查询中插入变量值【英文标题】:Inserting variable values in GraphQL query 【发布时间】:2022-01-10 16:15:18 【问题描述】:

我有一个基本的graphql查询作为一个字符串,它按预期执行之前我尝试修改它并添加输入变量(查询很长,所以我只会包括查询的开头,即变量需要插入的地方)

query 
  vessels 
    pageInfo 
      hasNextPage
      endCursor
    
    nodes 
...

这有效并返回预期的响应:

try:
    response = client.execute(gql(query))
except BaseException as e:
    logger.error(e)
    raise

模式允许查询特定的容器,所以我按照gql文档here中的示例输入变量列表

query 
  vessels (mmsi: $code ) 
    pageInfo 
      hasNextPage
      endCursor
    
    nodes 
...

但是,这不起作用并引发错误:

params = "code": [775903449, 775982824]

try:
    response = client.execute(gql(query), variable_values=params)
except BaseException as e:
    logger.error(e)
    raise
graphql.error.base.GraphQLError: Variable "$code" is not defined.

将变量插入/替换到查询字符串中我做错了什么?任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

可以回答我自己的问题 - 需要在查询的第一部分定义变量!

query ($code: [MMSI!]) 
  vessels (mmsi: $code )
    pageInfo 
      hasNextPage
      endCursor
    
    nodes 

【讨论】:

以上是关于在 GraphQL 查询中插入变量值的主要内容,如果未能解决你的问题,请参考以下文章

从选择查询+变量值插入表

是否可以创建一个同时插入变量值和表字段的追加查询?

Datalab 到 BigQuery - 将变量值插入 SQL

SQL 插入日期时间 变量值

通过android和JDBC将变量值插入Sql server

如何将变量值与 select 语句的结果一起放入 sql 表中?