mới để graphQL, tôi Sử dụng sơ đồ sau:Sáp nhập 2 điểm cuối REST để một phản ứng GraphQL đơn
type Item {
id: String,
valueA: Float,
valueB: Float
}
type Query {
items(ids: [String]!): [Item]
}
API của tôi có thể trả về nhiều mặt hàng trên một yêu cầu duy nhất của từng loại (A & B) nhưng không cho cả hai, ví dụ:
REST của Yêu cầu typeA: api/a/items?id=[1,2]
đáp ứng:
[
{"id":1,"value":100},
{"id":2,"value":30}
]
REST của Yêu cầu t ypeB: api/b/items?id=[1,2]
đáp ứng:
[
{"id":1,"value":50},
{"id":2,"value":20}
]
Tôi muốn kết hợp những 2 điểm cuối api vào một graphQL Phản ứng duy nhất như vậy:
[
{
id: "1",
valueA: 100,
valueB: 50
},
{
id: "2",
valueA: 30,
valueB: 20
}
]
Q: Làm thế nào sẽ một viết một trình phân giải sẽ chạy một số đơn lẻ tìm nạp cho từng loại (nhận được nhiều mục phản hồi) đảm bảo không tìm nạp không cần thiết nào được kích hoạt khi truy vấn là thiếu các loại tức là:
{items(ids:["1","2"]) {
id
valueA
}}
Ví dụ trên chỉ nên lấy api/a/items?id=[1,2]
và phản ứng graphQL nên là:
[
{
id: "1",
valueA: 100
},
{
id: "2",
valueA: 30
}
]
Hoạt động như sự quyến rũ :) –