RESTful API:如何通过查询字符串或分层设计URI?

时间:2012-03-01 02:55:58

标签: api rest collections uri

我有一个“普通”的网络应用程序,我列出了全球服务。 有两种列出书籍的方法:1)使用搜索字段或2)使用分层路径设计。

示例1)Seach字段生成以下URI: mysite.com/en/services?location=london&category=lowcost

示例2)路径如: mysite.com/en/services/uk/london/lowcost

两个示例都列出了相同的服务。

但现在我必须编写一个RESTful API代码。所以我的问题是: 我应该向api客户提供哪种界面/方式?我的意思是,如果他们只是通过使用查询字符串(示例1)请求我的数据,或者他们应该自己构建路径,这意味着他们应该知道,例如伦敦属于英国:)(或者是清迈到泰国)......

提供两种方式都是个好主意? BUt,如果我同时提供两者,那么它是一个很好的RESTful API设计,2个资源(在这种情况下是集合)是针对相同的资源吗?

1 个答案:

答案 0 :(得分:3)

路径名用于层次结构,即用于过滤的查询字符串。

  1. 如果它是named-object的超类别,则它将以路径名。
  2. 如果它唯一地标识了命名对象,那么它就是路径名的最后一个组成部分。
  3. 如果它是命名对象的属性或子对象,并不唯一地标识该对象,则它将在查询字符串中。