【问题标题】:How to use GraphQL Enums in a Non-English language? postgraphile如何在非英语语言中使用 GraphQL 枚举?后记
【发布时间】:2019-06-27 10:21:11
【问题描述】:

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

正如 GraphQL 规范中所写,枚举值必须是名称 - 仅限于具有此正则表达式的 ASCII 子集:

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

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

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

【问题讨论】:

    标签: postgresql enums graphql postgraphile


    【解决方案1】:

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

    EnumValue:: Name 但不是true,或falsenull

    -- 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" 之类的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 2015-06-02
      • 2017-07-29
      • 2015-10-07
      相关资源
      最近更新 更多