Как использовать GraphQL Enums на неанглийском языке?postgraphile - PullRequest
0 голосов
/ 03 февраля 2019

Я использую postgraphile (библиотека, которая упаковывает вашу базу данных Postgres с помощью GraphQL api), и у меня есть некоторые перечисления на иврите.

Как написано в спецификации GraphQL, значения Enum должны быть именами - которые ограничены подмножеством ASCII с помощью этого регулярного выражения:

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

Я хочу использовать тип перечисления Postgres для проверки моих столбцов перечисления.Postgraphile преобразует перечисления Postgres в тип GraphQLEnum, и это вызывает ошибку, если значение не соответствует упомянутому выше стандарту имени (поскольку некоторые перечисления на иврите).

Как бы вы использовали значения перечисления на другом языке?

1 Ответ

0 голосов
/ 04 февраля 2019

Как вы уже сказали, в настоящее время спецификация GraphQL допускает только значения перечислений, которые соответствуют регулярному выражению Name:

EnumValue :: Name, но не true, илиfalse или null

- 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, что вы можете сделать в хранилище спецификаций GraphQL на GitHub.По этой теме уже есть вопрос, в который вы могли бы внести свои идеи:

https://github.com/facebook/graphql/issues/256

С осторожностью (и используя такие ресурсы, как UAX # 31 ), это можетможно расширить синтаксис GraphQL для включения многоязычных идентификаторов без необходимости прибегать к такому подходу, как "punycode" .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...