В Neo4j Graphql Apollo определение типа сервера, как добавить имена с пробелами? - PullRequest
0 голосов
/ 15 ноября 2018

Мое определение типа выглядит следующим образом

type COMPANY {
    "AIRLINE SEGMENT": String             
    AIRLINE_TYPE: String
}

Я получаю сообщение об ошибке:

apollo server GraphQLError: Syntax Error: Expected Name, found :

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

Любая помощь будет высоко оценена.Спасибо.

1 Ответ

0 голосов
/ 15 ноября 2018

GraphQL не поддерживает пробелы в именах. Согласно spec имена должны соответствовать следующему регулярному выражению:

/[_A-Za-z][_0-9A-Za-z]*/

GraphQL фактически игнорирует все пробелы в документе, за исключением пробелов в строках и комментариях:

Пробел используется для улучшения читаемости исходного текста и служит разделением между токенами, и любое количество пробелов может появляться до или после любого токена. Пробел между токенами не имеет существенного значения для семантического значения документа GraphQL, однако символы пробела могут появляться в токене String или Comment.

Скорее всего, вам не следует использовать пробелы в именах узлов, даже если они технически поддерживаются. Это рекомендуемое соглашение об именах :

Верблюжий регистр, начинающийся с заглавной буквы

Если ваш источник данных возвращает объект с полями, в именах которых есть пробелы, вы можете преобразовать их в «допустимые» имена полей в вашей карте распознавателя. Например, для типа с именем Company с полем с именем airlineSegment:

const resolvers = {
  Company: {
    airlineSegment: company => company['AIRLINE SEGMENT']
  }
}
...