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']
    }
  }
});