Мне немного трудно понять graphql-cost-analysis . Вот мое определение GraphQL
type Query {
product(id: ID!): Product
}
type Product {
id: ID!
title: String
price: String
getRelatedProducts(limit: Int = 2): [Product]
}
getRelatedProducts
- тяжелая операция, поэтому я хочу добавить к ней больше затрат. Итак, вот что я попробовал.
type Product @cost(complexity: 1)
{
id: ID!
title: String
price: String
getRelatedProducts(limit: Int = 2): [Product]
@cost(complexity: 50)
}
Но когда я попытался сделать запрос вот так
{
product(id: "2223") {
id, title, price,
getRelatedProducts {
id, price
getRelatedProducts {
id, price
}
}
}
}
// Calculated Cost: 101
Я думал, что стоимость будет 151
:
- Получить стоимость товара 1
- Тогда использовать getRelatedProducts стоит 50
- Так как getRelatedProducts возвращает 2 продукта, то мы снова используем getRelatedProducts из этих двух, это должно стоить 50 x 2.
- Всего 1 + 50 + 50 x 2 = 151
Я пытался использовать multipliers
, но я тоже не хочу
getRelatedProducts(limit: Int = 2): [Product]
@cost(complexity: 50, multipliers: ["limit"])
Но getRelatedProduct
- это дорогостоящая операция, но ограничение количества возвращаемых предметов не является дорогой операцией. Если я использую, как это. Расчетная стоимость будет 301.
Может быть, я что-то упустил. Нужны некоторые указатели.