0

プロジェクトで 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
}

上記の 2 つのスキーマでは、スキーマ タイプ "Info" は両方のマイクロサービスで同じです。ApolloGateway を介して両方のサービスを実装した後、次のランタイム エラーがスローされます: "このデータ グラフには有効な構成がありません。有効なスキーマを構成できませんでした。次の構成エラーが見つかりました: "Info" という名前の型は 1 つだけ存在できます

4

1 に答える 1

0

Info が非共有型の場合は、BookInfo または AnotherInfo という名前を付けることをお勧めします

情報タイプを共有したい場合。ディレクティブを使用する必要があります

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

于 2021-06-18T02:21:42.347 に答える