如何在 GraphQL 中为键值定义枚举
Posted
技术标签:
【中文标题】如何在 GraphQL 中为键值定义枚举【英文标题】:How to define enums for key values in GraphQL 【发布时间】:2019-10-19 10:27:53 【问题描述】:如何在 GraphQL 架构中定义枚举键? 我期待的响应如下所示
businessByState:
MO: ["VALUE1", "VALUE2"],
CA: ["VALUE1", "VALUE3", "VALUE4]
我知道我可以为状态值定义枚举,但仍然想知道如何定义枚举以使键值只有 2 个字母的状态缩写?
【问题讨论】:
【参考方案1】:在 GraphQL 中,必须显式定义 Object 类型的每个字段。例如:
type BusinessByState
AL: [String!]!
AK: [String!]!
AZ: [String!]!
# and so on...
没有语法可用于基于某些输入(如现有枚举)定义具有相同类型的多个字段。
如果你的 typeDefs 只是一个字符串,你可以使用字符串模板来节省一些输入,假设你有某种状态缩写数组:
const states = ['AL', 'AK', 'AZ', /** and so on **/]
const typeDefs = `
enum STATES
$states.join('\n')
type BusinessByState
$states.map(state => `$state: [String!]!`).join('\n')
`
【讨论】:
以上是关于如何在 GraphQL 中为键值定义枚举的主要内容,如果未能解决你的问题,请参考以下文章