如何在缝合模式中解析联合类型?

时间:2018-10-22 20:54:41

标签: apollo graphql-js

我想在缝合模式上使用模式委派来解析联合类型字段。由于目前我的方法似乎不起作用,我该如何实现

  Spaceship: {
    createdBy: {
      fragment: 'fragment SpaceShipFragment on Spaceship { createdByHumanId createdByAlienId }',
      __resolveType({ createdByHumanId, createdByAlienId }, args, context, info) {
        const delegate = {
          operation: 'query',
          args: {},
          context,
          info,
        };
        if (createdByAlienId) {
          delegate.schema = schemas.aliens;
          delegate.args._id = createdByAlienId;
          delegate.fieldName = 'alienById';
        } else if (createdByHumanId) {
          delegate.schema = schemas.humans;
          delegate.args._id = createdByHumanId;
          delegate.fieldName = 'humanById';
        }

        return info.mergeInfo.delegateToSchema(delegate);
      },
    },
  },
});

我尝试同时使用__resolveTyperesolve,但是每次我都为空时。 Spaceship是由其他几种类型实现的接口。 解析器未得到调用。我不太确定自己在做什么错。任何帮助将不胜感激

0 个答案:

没有答案