新に2つのRESTエンドポイントのマージ:が、私は次のスキーマを使用しています単一GraphQL応答graphQLへ
type Item {
id: String,
valueA: Float,
valueB: Float
}
type Query {
items(ids: [String]!): [Item]
}
(& B)の各タイプの単一の要求で複数の項目を返すことができます私のAPIが、タイプAのための
REST要求::api/a/items?id=[1,2]
応答:tに対して
[
{"id":1,"value":100},
{"id":2,"value":30}
]
REST要求ではない、すなわち、両方のためにypeB:api/b/items?id=[1,2]
応答:
[
{
id: "1",
valueA: 100,
valueB: 50
},
{
id: "2",
valueA: 30,
valueB: 20
}
]
Q:どのように1は書くでしょう
[
{"id":1,"value":50},
{"id":2,"value":20}
]
私はそうのような単一graphQL応答にそれらの2のAPIエンドポイントを統合したいと思いますリゾルバはを実行します。それぞれのタイプ(複数のアイテムの応答を取得する)で1つずつフェッチします。クエリが不要なフェッチがトリガされていないことを確認します型すなわち欠け:
{items(ids:["1","2"]) {
id
valueA
}}
上記の例のみapi/a/items?id=[1,2]
をフェッチする必要があるとgraphQL応答は次のようになります。
[
{
id: "1",
valueA: 100
},
{
id: "2",
valueA: 30
}
]
作品はチャーム:) –