Резюме
Я пытаюсь смешать запрос на отдых с запросом graphql. Оба запроса относятся к одному и тому же ресурсу и работают по отдельности. Однако при попытке выполнить оба вместе
const QUERY_AUTHORS_AND_PEOPLE = gql`
query {
people @rest(type: "[Person]", path: "authors/") {
firstName
}
authors {
id
firstName
}
}
Я получаю следующую ошибку
Вы можете найти пример, о котором я говорю, здесь
Привет, @ 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
запросовДиректива export, похоже, не работает внутри запросов server-graphql. Я получаю следующую ошибку: Неизвестная директива «экспорт».
@marcelombc, это будет зависеть от реализации вашего сервера, я думаю, apollo-server
поставляется с ним из коробки, но я не думаю, что это требуется для соответствия спецификации.
@paulpdaniels Вы правы. Я использую графен на сервере, и мне просто нужно было создать специальную директиву для поддержки @export. Спасибо за вашу помощь.
Самый полезный комментарий
Собственно я только что проверил, и он уже входит в состав apollo-utilities. @fbartho Я бы с