2016-04-12 7 views
1

GraphQLを、いくつかのキーを整数として返すレガシーサービスで使用しようとしています。ここでは一例であり、キーが整数型の場合、GraphQLは "Names must match"エラーを返します

私は GraphQLフィールドとして「 "45を定義しようとしました
{ 
    "id": 1234, 
    "image": { 
    "45": "image1url", 
    "90": "image2url" 
    }, 
    "name": "I am legacy server" 
} 

var imageType = new graphql.GraphQLObjectType({ 
    name: 'Image', 
    fields: { 
    45: { type: graphql.GraphQLString }, 
    90: { type: graphql.GraphQLString } 
    } 
}); 

私は、次のエラーを取得しています、

Error: Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but "45" does not`.

はどのように我々としてキーを扱うことができます整数シナリオ?

答えて

3

GraphQLではキーの開始のみが可能ですgを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'] 
    } 
    } 
}); 
関連する問題