REST url param命名约定

时间:2015-08-19 11:29:19

标签: rest naming-conventions url-parameters

我有一个搜索学生的REST电话

  ?

/学生名=安培;无=

name和no是可选的。

我正在搜索名称中包含的学生。即如果我发送name =“sh”,它将返回所有名为包含“sh”的学生。

AND

表示否,它没有开始,即如果没有= 10那么它将返回所有没有开始的学生 10

此类参数的标准命名约定是什么。 我可以说

  

/学生nameContains =安培; noStartsWith =

OR

  ?

/学生名=安培;无=

哪一个是正确的方法?

1 个答案:

答案 0 :(得分:2)

查询参数没有标准的命名约定。在您的具体情况下,它取决于未来要求的可能性。如果它只是nameContains,那么,这比name要好得多。但是,如果您需要nameContainsnameStartsWithnameEndsWith等,那将会变得非常混乱。然后,您应该考虑指定搜索条件的单独资源或向name添加通配符,例如:

?name=Bob*  <!-- name starts with Bob -->
?name=*h   <!-- name ends with h -->
?name=Sa?  <!-- name has three letters and starts 'Sa' --> 

对于真正复杂的情况,您需要考虑支持正则表达式或使用现有库来处理搜索。还要考虑是否需要支持?nameIgnoreCase,这会强烈支持通配符而不是多个查询参数。