是否可以从Graphcool后端返回随机的graphql元素?如果是这样,怎么办呢?
或者,有关如何为Graphcool后端创建自定义查询的任何提示?
答案 0 :(得分:4)
执行此操作的最佳方法是使用 API网关模式。
这种方法的想法是将网关服务器置于Graphcool的CRUD API之上,从而自定义API。使用这种方法,您可以编写一个额外的resolver function来为您检索随机元素:
const extendTypeDefs = `
extend type Query {
randomItem: Item
}
`
const mergedSchemas = mergeSchemas({
schemas: [graphcoolSchema, extendTypeDefs],
resolvers: mergeInfo => ({
Query: {
randomItem: {
resolve: () => {
return request(endpoint, allItemsQuery).then(data => {
const { count } = data._allItemsMeta
const randomIndex = Math.floor((Math.random() * (count-1)) + 0)
const { id } = data.allItems[randomIndex]
return request(endpoint, singleItemQuery, { id }).then(data => data.Item)
})
},
}
},
}),
})
我创建了这个here的完整示例。如果您有任何其他问题,请与我们联系:)