Я очень новичок в GraphQL и пытаюсь выполнить простой запрос на соединение. Мои образцы таблиц выглядят так:
{
phones: [
{
id: 1,
brand: 'b1',
model: 'Galaxy S9 Plus',
price: 1000,
},
{
id: 2,
brand: 'b2',
model: 'OnePlus 6',
price: 900,
},
],
brands: [
{
id: 'b1',
name: 'Samsung'
},
{
id: 'b2',
name: 'OnePlus'
}
]
}
Я хотел бы получить запрос на возврат объекта Телефон с его торговой маркой вместо кода торговой марки.
Например. При запросе телефона с id = 2 он должен вернуть:
{id: 2, brand: 'OnePlus', model: 'OnePlus 6', price: 900}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


GraphQL как язык запросов во внешнем интерфейсе не поддерживает «объединения» в классическом смысле SQL.
Скорее, он позволяет вам выбирать, какие поля в конкретной модели вы хотите получить для своего компонента.
Чтобы запросить все телефоны в вашем наборе данных, ваш запрос будет выглядеть следующим образом:
query myComponentQuery {
phone {
id
brand
model
price
}
}
Сервер GraphQL, который запрашивает ваш интерфейс, будет иметь отдельные преобразователи полей, сообщающие GraphQL, где получить идентификатор, бренд, модель и т. д.
Серверный преобразователь будет выглядеть примерно так:
Phone: {
id(root, args, context) {
pg.query('Select * from Phones where name = ?', ['blah']).then(d => {/*doStuff*/})
//OR
fetch(context.upstream_url + '/thing/' + args.id).then(d => {/*doStuff*/})
return {/*the result of either of those calls here*/}
},
price(root, args, context) {
return 9001
},
},
Можете ли вы привести пример в резольвере для бренда? Кажется, это то, к чему стремится вопрос.