Graphql Ruby - Не удается прочитать свойства 'types' из undefined в buildClientSchema - rails 6 API only - PullRequest
0 голосов
/ 02 апреля 2020

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

TypeError: Cannot read property 'types' of undefined
at buildClientSchema (http://localhost:3000/assets/graphiql/rails/application-6f03c7a92432765b0fbe671bfb7a292ee6c37e6704b6e6ac95587e45676bbf72.js:34102:72)
at http://localhost:3000/assets/graphiql/rails/application-6f03c7a92432765b0fbe671bfb7a292ee6c37e6704b6e6ac95587e45676bbf72.js:2795:55

Я попытался удалить свой каталог graphql и заново выполнить rails создать graphql: установить.

Я использую

  • rails 6
  • graphiql-rails (1.7.0)
  • graphql (1.10.5 )

Первоначально я построил его только как API (и удалил ненужные файлы, включая ресурсы), но затем добавил необходимые конфигурации для запуска graphiql в локальной разработке, включая добавление приложения / assetts / config / manifest . js с помощью

//= link_tree ../images
//= link_directory ../javascripts .js
//= link_directory ../stylesheets .css

Мне удалось больше в ней разобраться - я установил точку останова в отладчике chrome для строки 34,102, которая имеет следующий код:

function buildClientSchema(introspection, options) {
  // Get the schema from the introspection result.
  var schemaIntrospection = introspection.__schema;

  // Converts the list of types into a keyMap based on the type names.
  var typeIntrospectionMap = (0, _keyMap2.default)(schemaIntrospection.types, function (type) {
    return type.name;
  });
..... more code ......

Проблема с schemaIntrospection.types, schemaIntrospection не определено. Итак, выше, я проверил переменную самоанализа, которая вызывает introspection.__schema - переменная самоанализа выглядела так:

{"Schema":
    {"queryType": {"name":"Query"},
     "mutationType": {"name":"Mutation"},
     "subscriptionType":null,
.... more JSON ...

Итак, в результате я вместо var schemaIntrospection = introspection.__schema; установил schemaIntrospection переменная, используя правильный ключ:

var schemaIntrospection = introspection.Schema;

И это сработало! Для этого конкретного c звоните только: / , как я использовал интерактивный отладчик

Кто-нибудь знает, как я могу это исправить с помощью ruby -graphql / graphiql более постоянно?

Я хочу использовать обозреватель документации

Спасибо!

1 Ответ

0 голосов
/ 02 апреля 2020

Возвращаясь назад, я переходил с API на основе REST на Graphql. В моем старом проекте было промежуточное программное обеспечение (https://github.com/vigetlabs/olive_branch), которое я забыл отключить, поэтому это заставляло его автоматически изменять регистр змей (который он определил __schema как регистр змей) на CamelCase. Мне плохо об этом, но я хотел продолжить, если у кого-то возникнут проблемы, возможно, проверьте ваше промежуточное ПО.

...