0

我们在我们的一个内部项目中使用了 graphql-ruby:为 React Native Web 前端提供服务的 Rails API 后端。我很好奇在处理返回结果的排序方面什么被认为是最佳实践。

我看到的一个选项是我们同时提供order_directionfield_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

当然,另一种选择是以预定义的方向(ASCDESC)提供所有结果,并让客户端自己重新排序。然而,这似乎非常低效。由于真正缺乏有关如何处理此问题的信息,我很好奇什么被认为是最佳实践。

任何帮助表示赞赏!

4

1 回答 1

0

作为最佳实践,排序结果应尽可能远离服务器(数据库)。

但是,据我了解,您在服务器端(GraphQL API)或前端(React Native Application)的排序结果之间存在疑问,所以:

我建议为客户端应用程序提供一个选项,以按特定顺序获取结果并处理服务器 API 上的排序,这样客户端应用程序应该只显示结果而不需要花费时间处理它们。

于 2019-07-11T08:59:48.360 回答