我正在尝试将GraphQL
与遗留服务一起使用,该服务返回一些JSON,其中一些键为整数。这是一个例子,
{
"id": 1234,
"image": {
"45": "image1url",
"90": "image2url"
},
"name": "I am legacy server"
}
当我尝试将"45
“定义为GraphQL
字段时,
var imageType = new graphql.GraphQLObjectType({
name: 'Image',
fields: {
45: { type: graphql.GraphQLString },
90: { type: graphql.GraphQLString }
}
});
我收到以下错误,
错误:名称必须匹配/ ^ [_ a-zA-Z] [_ a-zA-Z0-9] * $ /但“45”不匹配。
我们如何将键作为整数场景处理?
答案 0 :(得分:5)
GraphQL仅允许以ASCII字符或下划线开头的键。您可以使用resolve
函数将旧名称映射到新名称。
var imageType = new graphql.GraphQLObjectType({
name: 'Image',
fields: {
size45: {
type: graphql.GraphQLString,
resolve: (parent) => parent['45'],
},
size90: {
type: graphql.GraphQLString,
resolve: (parent) => parent['90']
}
}
});