Как использовать специальный символ (-) в перечислении appsync?

Я хотел бы представить информацию о локали, используя перечисление типа appsync. Тем не менее, есть некоторые специальные сведения о локали. например - в en-US, en-UK.

Если это возможно, я хочу сохранить формат строки локали.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
0
0
314
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Спецификация GraphQL не позволяет- в именах. Поэтому ответ прост: это невозможно.

Что вы можете сделать, так это создать тип объекта, который обертывает перечисление и строку локали:

enum LocaleIdentifier {
  EN_US
  EN_UK
  # ...
}

type Locale {
  id: LocaleIdentifier
  str: String
}

Это позволит вам использовать строку во внешнем интерфейсе каждый раз, когда вы получаете локаль, но ссылаетесь на локаль с типом перечисления. Я не уверен, что в этом есть большая ценность вместо того, чтобы просто использовать строку напрямую.

Насколько я понимаю, ценность использования перечислений заключается в ограничении ввода. И преобразователи перечислений должны здесь работать, не так ли? blog.logrocket.com/what-you-need-to-know-about-graphql-enums (я сам новичок в Graphql, просто искал тот же вопрос и нашел этот пост в блоге)

Mathias Conradt 26.01.2022 16:21

Вопрос заключался в том, можно ли создать перечисление GraphQL en-EN, и ответ — нет. Конечно, вы можете переназначить значение перечисления, например, из en-En в строку "en-EN". Но не каждая реализация GraphQL поддерживает это.

Herku 27.01.2022 14:03

Другие вопросы по теме