我是GraphQL的新手。我知道这是一个基本问题,但是希望我尝试多次但失败的人可以帮助我向查询中添加变量:(
在我的查询中,使用以下架构:
type Query {
ContinentInfo(id: ID): Continent
}
type Continent {
id : ID
name: String
countries: [Country]
}
type Country {
id : ID
name : String
population: Float
}
以下查询已成功执行:
{
ContinentInfo(id: "continent01") {
name
countries {
name
population
}
}
}
然后,我想在查询中添加更多条件,例如,添加变量“ populationMoreThan”以过滤结果。因此查询看起来像:
{
ContinentInfo(id: "continent01") {
name
countries(populationMoreThan: $populationMoreThan) {
name
population
}
}
}
,但是当我尝试在架构和查询中添加此变量时,它总是失败。 有人可以给我提供在我的情况下添加变量的示例吗? 另外,看起来我需要将参数值传递给查询吗?现在,我使用graphql.GraphQL.execute(queryString)传递查询字符串。如何在此处传递变量值?
答案 0 :(得分:0)
最后找到了一种过滤结果的方法。 使用以下内容更新架构:
import Mox
defp chunked_response_to_state(chunk, pid) do
current_chunk = Agent.get(pid, &Map.get(&1, :chunk_key))
Agent.update(pid, &Map.put(&1, :csv, current_chunk <> chunk))
end
setup do
MyApp.ControllerUtilsMock
|> stub(:chunk_to_conn, fn _, chunk -> chunk |> chunked_response_to_state(agent_pid) end)
{:ok, %{agent_pid: agent_pid}}
end
test "my test", state do
build_conn.get(somepath)
whole_chunks = Agent.get(state.agent_pid, &Map.get(&1, :chunk_key))
end
并查询:
type Continent {
id : ID
name: String
countries(populationMoreThan: Float = 0): [Country]
}