如何以非英语语言使用GraphQL枚举?后石墨

时间:2019-02-03 13:11:45

标签: postgresql enums graphql postgraphile

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

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

  

/ [__ A-Za-z] [_ 0-9A-Za-z] * /

我想使用Postgres枚举类型以便对我的枚举列进行验证。 Postgraphile将Postgres枚举转换为GraphQLEnum类型,并且当该值不在上述Name标准中时会导致错误(因为某些枚举在希伯来语中)。

您将如何使用其他语言的枚举值?

1 个答案:

答案 0 :(得分:1)

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

  

EnumValue :: Name但不是truefalsenull

     

-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之类的资源),可以扩展GraphQL的语法以启用多语言标识符,而无需求助于"punycode"之类的方法。