我有一个REST服务,允许人们将课程标题作为查询的一部分来获得分数,但是,有时他们可能想要获得一个组,例如Calcum%为Calc 1,2和3。 / p>
但是,给他们一个有意义的选择的最佳方法是什么?
例如,我有 http:// localhost / myrest / any / any / Calculus III
其中前两个参数是学生ID和某个年级类别。
我不认为 http:// localhost / myrest / any / any / contains / Calculus III 是一个很好的用途,因为我需要强迫他们使用 equals 如果这是他们正在寻找的东西。
另一个选项是 http:// localhost / myrest / any / any / Calculus%或 http:// localhost / myrest / any / any /%Calc%是另一种选择,但是您已经删除了选项,可以轻松地将%用作允许的字符。
因此,要在REST URL中提供其他过滤选项,允许包含或开始的最佳方式(定义为最简单/最直观的用户)。
答案 0 :(得分:1)
在您的系统中,以下查询会列出成绩类别中的所有科目吗?
http://localhost/myrest/any/any/
如果是,那么您可以考虑的一个选项是将非精确主题名称提取到GET参数中。因此,如果不打破当前逻辑,即URL中主题的全名提供该主题的分数,您还可以通过GET参数过滤同一年级类别中的主题列表。 / p>
例如:
http://localhost/myrest/any/any/?search=Calculus*
...可以提供这样的结果:
<subjects>
<subject uri="/myrest/any/any/Calculus%20I">A</subject>
<subject uri="/myrest/any/any/Calculus%20II">B</subject>
<subject uri="/myrest/any/any/Calculus%20III">C</subject>
</subjects>