Apollo-link-rest: Невозможно объединить rest w / graphql в одном запросе

Созданный на 4 апр. 2018  ·  9Комментарии  ·  Источник: apollographql/apollo-link-rest

Резюме

Я пытаюсь смешать запрос на отдых с запросом graphql. Оба запроса относятся к одному и тому же ресурсу и работают по отдельности. Однако при попытке выполнить оба вместе

const QUERY_AUTHORS_AND_PEOPLE = gql`
    query {
        people @rest(type: "[Person]", path: "authors/") {
            firstName
        }

        authors {
            id
            firstName
        }
    }

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

image

Вы можете найти пример, о котором я говорю, здесь

blocking bug 🐛 has-reproduction help wanted 🛠

Самый полезный комментарий

Собственно я только что проверил, и он уже входит в состав apollo-utilities. @fbartho Я бы с

Все 9 Комментарий

Привет, @ chimon2000 - это звучит как большая ошибка, вы чувствуете себя комфортно, отправляя нам модульный тест, который мог бы воспроизвести это?

В качестве альтернативы, PR, который это исправляет, был бы еще лучше. Я рад помочь, но моя текущая основная тестовая среда не использует настоящий сервер GraphQL, поэтому я не совсем настроен, чтобы убедиться, что это работает.

Привет, @fbartho , спасибо за быстрый ответ. Я добавил свой пример репозитория, который содержит код, необходимый для воспроизведения проблемы с примерами как angular, так и (p), но я также вижу возможность добавления модульного теста для этого.

Я не особо разбираюсь в том, как работают ссылки Apollo.

Привет, @fbartho , я добавил тест на провал PR, чтобы вы, ребята, поигрались - это действительно проблема, надеюсь, это полезно.

Заглянув в источник, кажется, что единственный раз, когда вызывается forward для отправки операции по следующей ссылке, это here .

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

Я думаю, что простого копирования этого раздела из apollo-link-state было бы достаточно (возможно, даже имеет смысл координировать свои действия с сопровождающими для извлечения такой логики в отдельный пакет, поскольку это кажется действительно полезным для разработчиков ссылок).

Собственно я только что проверил, и он уже входит в состав apollo-utilities. @fbartho Я бы с

@paulpdaniels Чувак, мне бы это понравилось. Пожалуйста, прими это.

Конкретные опасные сценарии, которые я хочу убедиться, мы поддерживаем / не нарушаем:

  • Вложение @rest() внутри @rest() запросов с использованием `@export (as:…)
  • Вложение @rest() внутри запросов server-graphql с использованием `@export (as:…)
  • Вложение @rest() внутри @client запросов
  • Убедитесь, что это не нарушает кодовые пути Typename Patcher!

Директива export, похоже, не работает внутри запросов server-graphql. Я получаю следующую ошибку: Неизвестная директива «экспорт».

@marcelombc, это будет зависеть от реализации вашего сервера, я думаю, apollo-server поставляется с ним из коробки, но я не думаю, что это требуется для соответствия спецификации.

@paulpdaniels Вы правы. Я использую графен на сервере, и мне просто нужно было создать специальную директиву для поддержки @export. Спасибо за вашу помощь.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги