Я хотел бы знать, есть ли способ объединить два API отдыха в атрибуте название с помощью graphql. Это ответ, который у меня есть
// products API
[
{
id: "0001",
name: "a name",
color: "black",
size: "L"
},
{
id: "0002",
name: "an other name",
color: "red",
size: "M"
}
]
// price API
[
{
id: "xyz1",
name: "a name",
price: 10
},
{
id: "xyz2",
name: "an other name",
price: 20
}
]
и я хочу использовать graphql для их объединения, чтобы
// response from graphql
[
{
id: "0001",
name: "a name",
price: 10,
color: "black",
size: "L"
},
{
id: "0002",
name: "an other name",
price: 20,
color: "red",
size: "M"
}
]
Подходит ли graphql?
да, обновил вопрос. Спасибо
Откуда вы берете эти данные?
из двух остальных API
Я не уверен, но использовать grapql невозможно.





GraphQL не поддерживает соединение 2 (или более) API в некоторых атрибутах. Что вы можете сделать, так это получить данные из обоих API в преобразователе и создать объект с обоими результатами.
Что-то вроде (псевдокода):
const products: yourDefinedType = []
fetch.productsAPI(productFromAPI
fetch.pricesAPI(pricesFromAPI
if (pricesFromAPI.name === productFromAPI.name) {
product.push({
id: productFromAPI.id,
name: productFromAPI.name,
color: productFromAPI.color,
size: productFromAPI.size,
price: pricesFromAPI.price
})
}
)
)
Имейте в виду, что это может вызвать проблемы с производительностью, так как вы сделаете выборку для всех цен для каждого продукта. Другой способ - сделать ваши цены REST api для поддержки получения цены по имени и получения только тех цен, которые вам нужны.
не могли бы вы объяснить немного больше