Apollo graphql远程模式扩展依赖于远程字段

时间:2018-05-29 19:00:32

标签: graphql apollo

我们可以扩展我们的远程架构,但有一个主要的警告:新的字段无法在它自己的上面查询;它必须包含在遥控器的至少一个字段中。是否可以只查询扩展字段?

在下面的例子中,我扩展了" name"包括字段" catsName。"如果我查询"首先,"查询有效。如果我查询" catsName"和#34;首先,"查询有效。如果我只查询" catsName,"它返回状态码为400的内部服务器错误。

注意: - 当我们扩展非远程字段时,我们没有这个问题。 - 我们的远程GraphQL引擎使用Absinthe(Erlang / Elixir)。我们在当地使用Apollo。我们的目标是支持传统的Absinthe GraphQL实现。

工作查询:

query{
    user{
        profile{
            personal{
                name{   // extend type name
                     catsName // New field
                     first    // Original field 
}}}}}

非工作查询:

query{
    user{
        profile{
            personal{
                name{   // extend type name
                     catsName // New field
}}}}}

错误:

  

" message":" Field \" name \"类型为" UserPersonalName \"必须有一个    选择子场。你的意思是"名称{...} \"?"

经过进一步研究后,我们确定原因是远程服务器上存在用户,个人资料,个人和姓名。 " catsName"的扩展在当地存在。如果我们只查询catsName,我们的引擎无法知道根域存在,因此返回错误。如果我们在查询中包含至少一个远程字段,则本地引擎知道获取远程并且能够返回所有数据。

0 个答案:

没有答案