提问人:Jay Karavadra 提问时间:11/7/2023 最后编辑:Michel FloydJay Karavadra 更新时间:11/9/2023 访问量:19
关于apollo-server中的动态字段选择
Regarding dynamic field selection in apollo-server
问:
我正在将 apollo GraphQL 用于后端和前端。我想动态选择客户请求的字段。
在参数的帮助下,我创建了一个函数,该函数通过客户端为我提供选定的字段,并在此基础上从数据库中获取选定的字段。info
解析 器
selection.fields = .extractSelection(info?.fieldNodes[0]?.selectionSet)
函数实现
.extractSelection = (selectionSet) => {
const subSelection = {}
if (selectionSet) {
selectionSet?.selections?.forEach(selection => {
if (selection?.selectionSet) {
if (selection.kind === 'InlineFragment') Object.assign(subSelection, .extractSelection(selection?.selectionSet))
else subSelection[selection?.name?.value] = .extractSelection(selection?.selectionSet)
} else {
subSelection[selection?.name?.value] = 1
}
})
}
return subSelection
}
我对这个实现有些疑问。 为每个请求执行此函数进行字段选择是否好? 有没有其他方法可以实现这个东西?
我只需要知道这是否好,或者是否有更好的解决方案?
答: 暂无答案
评论