对工会的合并结果进行分页

时间:2019-06-17 16:00:06

标签: javascript node.js graphql apollo apollo-server

我对graphql和Apollo还是有点陌生​​。但是我很好奇,如果我创建一个返回两种类型联合的搜索查询,我将如何修改该联合的组合结果。使用Apollo Docs示例(Unions and interface):

union Result = Book | Author

  type Book {
    title: String
  }

  type Author {
    name: String
  }

  type Query {
    search: [Result]
  }
const resolvers = {
  Result: {
    __resolveType(obj, context, info){
      if(obj.name){
        return 'Author';
      }

      if(obj.title){
        return 'Book';
      }

      return null;
    },
  },
  Query: {
    search: () => { ... }
  },
};

const server = new ApolloServer({
  typeDefs,
  resolvers,
});

server.listen().then(({ url }) => {
  console.log(`? Server ready at ${url}`)
});

“书籍”和“作者”解析器都完成后,假设我有200个结果,50本书和150个作者。如果我想将其限制为100个(按字母顺序排序),在将其返回给客户端之前,我将如何访问已解析的数组? Apollo服务器类型定义具有带有resolve函数的IResolverOptions接口,但是如果将其添加到Result解析器中,则会收到一条错误消息,指出Result.resolve是在解析器中定义的,而不是架构中定义的。

0 个答案:

没有答案