我正在使用postgraphile(一个使用GraphQL api包装您的Postgres数据库的库),并且希伯来语中有一些枚举。
如GraphQL规范中所述,枚举值必须是名称-使用此正则表达式限制为ASCII子集:
/ [__ A-Za-z] [_ 0-9A-Za-z] * /
我想使用Postgres枚举类型以便对我的枚举列进行验证。 Postgraphile将Postgres枚举转换为GraphQLEnum类型,并且当该值不在上述Name标准中时会导致错误(因为某些枚举在希伯来语中)。
您将如何使用其他语言的枚举值?
答案 0 :(得分:1)
正如您所述,目前GraphQL规范仅允许与Name
正则表达式匹配的枚举值:
EnumValue
::Name
但不是true
或false
或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之类的资源),可以扩展GraphQL的语法以启用多语言标识符,而无需求助于"punycode"之类的方法。