GraphQL正在返回“;名称必须匹配;键的类型为integer时出错
我试图将GraphQL正在返回“;名称必须匹配;键的类型为integer时出错,graphql,Graphql,我试图将GraphQL与一个遗留服务结合使用,该服务返回一个JSON,其中一些键为整数。举个例子, { "id": 1234, "image": { "45": "image1url", "90": "image2url" }, "name": "I am legacy server" } 当我试图将“45”定义为GraphQL字段时 var imageType = new graphql.GraphQLObjectType({ name: 'Image',
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 }
}
});
我得到以下错误
错误:名称必须匹配/^[\u a-zA-Z][\u a-zA-Z0-9]*$/但“45”不匹配
我们如何将键处理为整数场景 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']
}
}
});