如何在非英语语言中使用 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]*/
我认为用其他语言表达枚举的愿望很有吸引力;我建议您帮助制定一个提案来解决 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" 等资源。
我正在使用 postgraphile(一个用 GraphQL api 包装你的 Postgres 数据库的库),我有一些希伯来语的枚举。
正如 GraphQL 规范中所写,枚举值必须是名称 - 使用此正则表达式限制为 ASCII 子集:
/[_A-Za-z][_0-9A-Za-z]*/
我想使用 Postgres 枚举类型来验证我的枚举列。 Postgraphile 将 Postgres 枚举转换为 GraphQLEnum 类型,当值不在上述名称标准中时会导致错误(因为一些枚举是希伯来语)。
您将如何使用不同语言的枚举值?
如您所述,目前 GraphQL 规范仅允许匹配 Name
正则表达式的枚举值:
EnumValue
::Name
but nottrue
, orfalse
ornull
-- https://facebook.github.io/graphql/draft/#sec-Enum-Value
Name
::/[_A-Za-z][_0-9A-Za-z]*/
我认为用其他语言表达枚举的愿望很有吸引力;我建议您帮助制定一个提案来解决 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" 等资源。