Все поля и параметры, отмеченные как ненулевые в Graphiql: Sangria, scala - PullRequest
0 голосов
/ 08 мая 2020

Я не могу использовать почтальон для запроса сервера graphql, написанного на scala, с использованием его библиотеки sangria. Я получаю сообщение об ошибке неправильного формата в почтальоне, если я использую тип содержимого как «application- json», и если я использую простой текст, я получаю неподдерживаемый тип содержимого. Я использую версию почтальона 6.2.4. Код довольно прост, я читаю данные из hbase. Я использую макрос-функцию сангрии deriveObjectTypeUnit, myCaseClass для определения объекта. Однако я могу использовать консоль graphiql, объединив файл graphiql. html из ресурсов в созданный маршрут. Проблема с консолью graphiql заключается в том, что она помечает все аргументы и поля как не допускающие значения NULL, чего нельзя, поскольку по умолчанию все поля в graphql допускают значение NULL. Я проверил это на вкладке документации консоли graphiql, где я могу видеть все свои поля, а параметры помечены как не допускающие значения NULL (с ​​восклицательным знаком ! ). Пример запроса выглядит следующим образом:

{
  hBaseTable(date: "2019-11-21", key: "10100003071234") {
    RowKey
    DateOfInt
  }
}

Мой вопрос в том, как установить значение NULL по умолчанию в сангрии и как graphql java поддерживает версию 6 почтальона, но не реализацию scala.

1 Ответ

1 голос
/ 08 мая 2020

Поле может быть обнуляемым по умолчанию в схемах GraphQL, но в Scala null s почти всегда возникают программные ошибки (и, конечно, всегда, если вы передаете или возвращаете их как параметры) - вы хотите обнуляемые, вы явно моделируете их с помощью Option. Если вы хотите придерживаться соглашения GraphQL, просто напишите все поля в ваших классах case как Option al.

...