Пытаюсь изучить GraphQL в Ruby on Rails API. Я использую гем graphql.
В этом примере у меня есть продукты и рецензии, у продукта может быть много отзывов, и рецензия относится к одному продукту.Отзывы есть комментарий: строка и звезды: int.У меня все работает, поэтому я могу вернуть все товары со всеми отзывами.Я также знаю, как вернуть один продукт со всеми отзывами.
Что мне теперь нужно, так это все продукты, а затем все отзывы с рейтингом выше 3.
, поэтому я бы хотелof предположить что-то вроде
{
products{
reviews(where: "stars< 3") {
stars
}
}
}
Но я бы хотел, чтобы
{
products{
reviews {
stars
}
}
}
также работал и возвращал все отзывы, если это возможно
Большинство учебников, которые я видел, написаны на js... использовать синтаксис some -> resolver (obj, arg, ctx), который больше не подходит для ruby.
Или универсальный захват всех записей.
query_type.rb
field :product, ProductType, null: false, description: "find product by id"do
argument :id, ID, required: true
end
field :products, [ProductType], null: false
def products
Product.all
end
def product(id:)
Product.find(id)
end
product_type.rb
module Types
class ProductType < Types::BaseObject
description " A product"
field :id, ID, null: false
field :title, String, null: false
field :category, Types::CategoryType, null: false
field :reviews, [Types::ReviewType], null: false
end
end
review_type.rb
module Types
class ReviewType < Types::BaseObject
field :id, ID, null: false
field :content, String, null: false
field :stars, Integer, null: false
field :product, Types::ProductType, null: false
end
end
Я хотел бы иметь возможность передавать отзывы и получать их все, но также иуметь использовать там, где предложения.
Какой лучший способ сделать это?