Сервер GraphQL Apollo, как заставить поле регистрировать пустую строку как ноль - PullRequest
0 голосов
/ 24 января 2020

У меня есть пустое поле 'language', которое на самом деле никогда не равно null. Это либо код локали, либо пустая строка ''. Это вызывает проблемы на моем клиенте, который ожидает либо код локали, либо ничего вообще.

Хотя я мог поймать это в моем клиенте или предотвратить это в своей базе данных, я бы предпочел решить эту проблему на своем GQL-сервере.

Одним из решений, которое я мог бы придумать, является проверка данных, которые я получаю в моих источниках данных, и изменение в случае необходимости. Однако я боюсь, что это может повредить производительности, так как это очень важный запрос, и я не хочу использовать эту проверку каждый раз, когда кто-то получает доступ к любой странице на моем сайте.

Ответы [ 2 ]

1 голос
/ 24 января 2020

Пользовательские скаляры и перечисления могут использоваться для выполнения некоторых настроек, например, проверки или автокоррекции при преобразовании предоставленных данных ("" в null).

Keystone. JS имеет хорошую систему зацепок для этого.

1 голос
/ 24 января 2020

Вы бы предоставили пользовательский распознаватель для рассматриваемого поля:

const resolvers = {
  SomeType: {
    language (parent) => {
      return parent.language || null
    }
  }
}
...