Проверка федеративной схемы GraphQL

Я создал 3 микросервиса в своем проекте и реализовал структуру федерации GraphQL Netflix DGS. https://netflix.github.io/dgs/ Как компания, мы имеем более 30 схем из разных микросервисов от разных команд. Но если имена типов схемы дублируют друг друга в разных микросервисах, мы получаем ошибку времени выполнения в шлюзе Apollo. Я хотел бы знать, как проверить схемы? Есть ли какой-либо движок/библиотека/концепция для проверки схемы Federated GraphQL на нескольких микросервисах и т. д.? Я проверял реестр схем, но похоже, что он предназначен для хранения схем, управления версиями и т. д., а не для проверки схемы. Пример схемы и ошибки: Схема в службе 1:

type Query{
Status:status
}
type status{
id:String
Information:Info
}
type Info{
location:String
birthDate:String
gender:String
}

Схема в сервисе 2:

type Query{
Books:Book
}
type Book{
name:String
Information:Info
}
type Info{
author:String
Rating:String
}

В приведенных выше двух схемах информация о типе схемы одинакова в обоих микросервисах. После реализации обеих служб через ApolloGateway выдается ошибка времени выполнения: в этом графе данных отсутствует допустимая конфигурация. Не удалось составить допустимую схему. Были обнаружены следующие ошибки композиции: Может быть только один тип с именем Info


person Stella    schedule 16.06.2021    source источник


Ответы (1)


Если Info не является общим типом, я рекомендую вам назвать его BookInfo или AnotherInfo.

и если вы хотите поделиться типом информации. вы должны использовать директиву

https://www.apollographql.com/docs/federation/enterprise-guide/federated-schema-design/

person fuzes    schedule 18.06.2021