Мы используем graphql-ruby в одном из наших внутренних проектов: серверная часть API Rails, обслуживающая веб-интерфейс React Native. Мне любопытно, что считается лучшей практикой в отношении обработки упорядочения возвращаемых результатов.
Один из вариантов, который я вижу, заключается в том, что мы предоставляем как аргументы order_direction
, так и field_to_order_by
, и клиент должен явно указывать каждый из них для запроса (конечно, также предоставляя значения по умолчанию).
Один из способов справиться с этим будет
if (sort_column = args[:sort_by])
if (direction = args[:direction])
users = users.order(sort_column.to_sym => direction.to_sym)
else
users = users.order(sort_column.to_sym) # default sort order
end
end
Другим вариантом, конечно, было бы предоставление всех результатов в заранее определенном направлении (ASC
или DESC
) и изменение порядка самим клиентом. Однако это кажется очень неэффективным. Поскольку существует реальная нехватка информации о том, как подойти к этому, мне любопытно, что считается лучшей практикой.
Любая помощь приветствуется!