字符串不能表示值 GraphQL
Posted
技术标签:
【中文标题】字符串不能表示值 GraphQL【英文标题】:String cannot represent value GraphQL 【发布时间】:2020-05-18 08:40:04 【问题描述】:我正在构建一个 GraphQL API,在我的一个端点中我遇到了这个问题,它说“消息”:“字符串无法表示值:[\”Vitoria\”,\“Serra\”,\“Cariacica \", \"Vila Velha\"]"。
我已尝试更改类型:GraphQLList。
const alfa_regions = [
ES_capital: ['Vitoria', 'Serra', 'Cariacica', 'Vila Velha'],
ES_Interior: ['Piuma', 'Sao Gabriel'],
MG_Capital: ['Contagem'],
MG_Interior: ['Juiz de fora', 'Governador Valadares', 'Teofilo Otoni', 'Monte Claros'],
]
const
GraphQLObjectType,
GraphQLSchema,
GraphQLString,
GraphQLFloat,
GraphQLList
= graphql
const AlfaRegionType = new GraphQLObjectType(
name: 'AlfaRegion',
fields: () => (
id: type: GraphQLString,
region_id: type: GraphQLString,
ES_capital: type: GraphQLString,
)
)
const RootQuery = new GraphQLObjectType(
name: 'RootQueryType',
fields:
regions:
type: AlfaRegionType,
args: id: type: GraphQLString,
resolve(parent, args)
return _.find(alfa_regions, )
)
【问题讨论】:
【参考方案1】:如果一个字段返回一个字符串数组,而不仅仅是一个字符串,那么你应该使用GraphQLList
作为here所示的类型:
type: new GraphQLList(GraphQLString)
或使用 SDL
[String]
如果数组不包含任何空值,那就更好了
type: new GraphQLList(new GraphQLNonNull(GraphQLString))
或使用 SDL
[String!]
如果数组不包含任何空值并且字段本身永远不会为空,那么执行:
type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString)))
或使用 SDL
[String!]!
【讨论】:
以上是关于字符串不能表示值 GraphQL的主要内容,如果未能解决你的问题,请参考以下文章
如何在 apollo graphQL 服务器的枚举值中添加特殊字符?