Допустим, у меня есть следующая схема запроса:
schema {
query: Query
}
type Query {
money(id: Long!): Money
coin(id: Long!): Coin
}
type Money {
id: Long!
coins: [Coin!]!
}
type Coin {
id: Long!
name: String!
history: [DateVal!]
}
type DateVal {
date: String!
val: Long!
}
У меня две конечные точки: /money и /coin, каждая из которых принимает идентификатор. Когда я делаю запрос к /money, я получаю ответ, как показано ниже:
{
"id": 5,
"coins": [
{ "id" : 1, "name" : "N1", "history": null},
{ "id" : 2, "name" : "N2", "history": null},
]
}
Если я вызываю конечную точку coin с идентификатором монеты, я получаю полную историю монеты.
Есть ли способ заставить GraphQL принять такой ответ и рекурсивно вызвать конечную точку /coin, используя идентификатор каждой монеты, чтобы заполнить историю? Я попробовал выполнить следующий запрос, но он не вызвал рекурсивно конечную точку coin.
{
money(id: 1) {
id
coins {
id
name
history {
date
val
}
}
}
}
@ AlessanderFrança Я обнаружил, что моя проблема заключалась в том, что я не подключил преобразователь для поля history для coin. Я предположил (ошибочно), что graphQL автоматически вызовет coin для ответа монеты.
Хороший! эта ошибка часто встречается в graphql.


Можете ли вы добавить свои функции распознавателя?