Jersey REST api 正确过滤和排序

Jersey REST api filtering and ordering correctly

我有 Jersey REST API,我想添加按列排序、按列、基数、偏移量等进行过滤。但是我找不到具体的答案应该如何,或者是否有一些最佳实践可以遵循。它是 header 参数还是查询参数?它应该在一个参数下,如 Order = "name:asc" 还是两个参数,如 order_by = "name" 和 order_order_how = "asc"。或者完全由我来决定我该怎么做?

一般情况下,此信息位于查询参数中。我会看到一些模式。对我来说最直观的两个如下

  • /resource?sort=-firstname[,+lastname]

    []表示可选的更多条件。 +-表示顺序

我喜欢上面的模式而不是类似

的原因
  • /resource?sort=firstname&order=asc

就是上面的pattern,随着sortorder的分离,很难保证多个criteria的正确性。看来我们的解析算法可能容易出错,并且依赖于客户端的谨慎请求。