Мы используем 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
) и переупорядочить самого клиента. Это кажется очень неэффективным, однако. Поскольку существует реальная нехватка информации о том, как подойти к этому, мне любопытно, что считается лучшей практикой.
Любая помощь приветствуется!