为REST查询提供启动或包含选项的最佳方法

时间:2011-01-20 19:16:22

标签: rest

我有一个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中提供其他过滤选项,允许包含或开始的最佳方式(定义为最简单/最直观的用户)。

1 个答案:

答案 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>