Как использовать GraphQL Enums на неанглийском языке? postgraphile
Я использую postgraphile (библиотека, которая упаковывает вашу базу данных Postgres с помощью GraphQL api), и у меня есть некоторые перечисления на иврите.
Как написано в спецификации GraphQL, значения Enum должны быть именами, которые ограничены подмножеством ASCII с помощью следующего регулярного выражения:
/ [_ A-Za-Z][_0-9A-Za-Z]*/
Я хочу использовать тип перечисления Postgres для проверки моих столбцов перечисления. Postgraphile преобразует перечисления Postgres в тип GraphQLEnum и выдает ошибку, если значение не соответствует упомянутому выше стандарту имени (поскольку некоторые перечисления на иврите).
Как бы вы использовали значения enum на другом языке?
1 ответ
Как вы заявили, в настоящее время спецификация GraphQL допускает только значения enum, соответствующие Name
регулярное выражение:
EnumValue
::Name
но нетtrue
, или жеfalse
или жеnull
- https://facebook.github.io/graphql/draft/
Name
::/[_A-Za-z][_0-9A-Za-z]*/
Я думаю, что желание выразить перечисления на других языках неотразимо; Я предлагаю вам помочь сформулировать предложение для решения этих проблем в самой спецификации GraphQL, что вы можете сделать в хранилище спецификаций GraphQL на GitHub. По этой теме уже есть вопрос, в который вы могли бы внести свой вклад:
https://github.com/facebook/graphql/issues/256
С осторожностью (и с использованием ресурсов, таких как UAX # 31), возможно, можно расширить синтаксис GraphQL, чтобы включить многоязычные идентификаторы, не прибегая к такому подходу, как "punycode".