Обзор (упрощенный):
На моем сервере NodeJS я реализовал следующую схему GraphQL:
type Item {
name: String,
value: Float
}
type Query {
items(names: [String]!): [Item]
}
Затем клиентский запрос передает массив имен в качестве аргумента:
{
items(names: ["total","active"] ) {
name
value
}
}
Бэкэнд-API запрашивает базу данных mysql для полей total "и активных" (столбцы моей таблицы БД) и уменьшает ответ так:
[{"name":"total" , value:100} , {"name":"active" , value:50}]
Я бы хотел, чтобы мой API-интерфейс graphQL поддерживал "отношение" Item, I.E: Я хотел бы отправить следующий запрос:
{
items(names: ["ratio"] ) {
name
value
}
}
или
{
items(names: ["total","active","ratio"] ) {
name
value
}
}
И верните active/total как результат вычисления этого нового поля ([{"name":"ratio" , value:0.5}]
). Каким будет общий способ обработки поля "по-разному?
Должен ли он быть новым типом в моей схеме или я должен реализовать логику в редукторе?