Хотя спецификация определяет типы скаляров, которые должны быть включены в каждую реализацию, и определяет, как эти скаляры должны быть сериализованы и проанализированы, на самом деле не проводится различие между этими встроенными скалярами и любыми другими. Сервис GraphQL может быть предоставлен. Функционально нет разницы между «встроенным» типом и «пользовательским».
Есть пять встроенных скаляров , обозначенных спецификацией . Это вряд ли изменится в будущем.
- Int
- Float
- Строка
- Boolean
- ID
Есть также несколько «мета» типов, которые явно используются для самоанализа. Они обозначены здесь .
- __ * Схема 1026 *
- __ * Тип 1028 *
- __ поле
- __ InputValue
- __ EnumValue
- __ TypeKind
- __ * Директива 1038 *
- __ DirectiveLocation
Имена, начинающиеся с двух подчеркиваний (__
), являются зарезервированными именами, поэтому любые типы, имена которых начинаются таким образом, можно смело классифицировать как «встроенные».
Из вашего вопроса неясно, с какой целью вы пытаетесь провести различие между «встроенными» и «пользовательскими» типами, но я бы предположил, что для большинства целей мы считаем вышеописанное «встроенным». типы и любые другие "обычай".