Фильтруйте или различайте встроенные и пользовательские типы графиков - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь найти способ отличить (и отфильтровать) встроенные типы от моих пользовательских типов при запуске introspectionQuery для API-интерфейса graphql.Кажется, в выводе нет ничего надежного, чтобы определить, какие типы являются встроенными (кроме __ перед типами "system").

На данный момент я даже не могу показатьсячтобы найти единый официальный список, поэтому мне лучше всего просмотреть вывод introspectionQuery и составить список для будущего использования, надеясь, что ничего не изменится.1005 *

1 Ответ

0 голосов
/ 14 мая 2019

Хотя спецификация определяет типы скаляров, которые должны быть включены в каждую реализацию, и определяет, как эти скаляры должны быть сериализованы и проанализированы, на самом деле не проводится различие между этими встроенными скалярами и любыми другими. Сервис GraphQL может быть предоставлен. Функционально нет разницы между «встроенным» типом и «пользовательским».

Есть пять встроенных скаляров , обозначенных спецификацией . Это вряд ли изменится в будущем.

  • Int
  • Float
  • Строка
  • Boolean
  • ID

Есть также несколько «мета» типов, которые явно используются для самоанализа. Они обозначены здесь .

  • __ * Схема 1026 *
  • __ * Тип 1028 *
  • __ поле
  • __ InputValue
  • __ EnumValue
  • __ TypeKind
  • __ * Директива 1038 *
  • __ DirectiveLocation

Имена, начинающиеся с двух подчеркиваний (__), являются зарезервированными именами, поэтому любые типы, имена которых начинаются таким образом, можно смело классифицировать как «встроенные».

Из вашего вопроса неясно, с какой целью вы пытаетесь провести различие между «встроенными» и «пользовательскими» типами, но я бы предположил, что для большинства целей мы считаем вышеописанное «встроенным». типы и любые другие "обычай".

...