如何在非英语语言中使用 GraphQL 枚举?邮寄的

How to use GraphQL Enums in a Non-English language? postgraphile

我正在使用 postgraphile(一个用 GraphQL api 包装你的 Postgres 数据库的库),我有一些希伯来语的枚举。

正如 GraphQL 规范中所写,枚举值必须是名称 - 使用此正则表达式限制为 ASCII 子集:

/[_A-Za-z][_0-9A-Za-z]*/

我想使用 Postgres 枚举类型来验证我的枚举列。 Postgraphile 将 Postgres 枚举转换为 GraphQLEnum 类型,当值不在上述名称标准中时会导致错误(因为一些枚举是希伯来语)。

您将如何使用不同语言的枚举值?

如您所述,目前 GraphQL 规范仅允许匹配 Name 正则表达式的枚举值:

EnumValue:: Name but not true, or false or null

-- https://facebook.github.io/graphql/draft/#sec-Enum-Value

Name:: /[_A-Za-z][_0-9A-Za-z]*/

-- https://facebook.github.io/graphql/draft/#Name

我认为用其他语言表达枚举的愿望很有吸引力;我建议您帮助制定一个提案来解决 GraphQL 规范本身中的这些问题,您可以在 GitHub 上的 GraphQL 规范存储库中执行此操作。关于这个主题已经有一个未解决的问题,您可以贡献您的见解:

https://github.com/facebook/graphql/issues/256

小心(并使用 UAX#31) it may be possible to extend GraphQL's syntax to enable multi-lingual identifiers without needing to resort to an approach such as "punycode" 等资源。