我正在使用 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 规范存储库中执行此操作。关于这个主题已经有一个 Unresolved 问题,您可以贡献您的见解:
https://github.com/facebook/graphql/issues/256
小心(并使用像 UAX#31 这样的资源),可以扩展 GraphQL 的语法以启用多语言标识符,而无需诉诸像 "punycode" 这样的方法。 .
关于postgresql - 如何在非英语语言中使用 GraphQL 枚举?邮寄的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54503228/