【发布时间】:2019-11-20 22:00:19
【问题描述】:
我们在我们的一个内部项目中使用了 graphql-ruby:为 React Native Web 前端提供服务的 Rails API 后端。我很好奇在处理返回结果的排序方面什么被认为是最佳实践。
我看到的一个选项是我们同时提供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)提供所有结果,并让客户端自己重新排序。然而,这似乎非常低效。由于真正缺乏关于如何解决这个问题的信息,我很好奇什么被认为是最佳实践。
任何帮助表示赞赏!
【问题讨论】:
-
在数据库级别排序总是更快。
标签: ruby-on-rails graphql graphql-ruby