我有一个“普通”网络应用程序,我在其中列出了全局服务。 列出图书的方法有 2 种:1) 使用搜索字段或 2) 使用分层路径设计。
示例 1) Seach 字段生成如下 URI: mysite.com/en/services?location=london&category=lowcost
示例 2) 路径如下: mysite.com/en/services/uk/london/lowcost
两个示例都列出了相同的服务。
但现在我必须编写 RESTful API。所以我的问题是: 我应该向我的 api 客户端提供哪种接口(interface)/方式?我的意思是,他们应该只使用查询字符串(示例 1)请求我的数据,还是应该自己构建路径,这意味着他们应该知道,例如伦敦属于英国:)(或清迈属于泰国)...
提供两种方式是个好主意吗? 但是,如果我同时提供这两种资源,那么 2 个资源(在本例中为集合)针对同一资源,这是一个很好的 RESTful API 设计吗?
最佳答案
路径名用于层次结构,查询字符串用于过滤。
- 如果它是命名对象的父类(super class)别,则它会出现在路径名中。
- 如果它唯一标识命名对象,则它是路径名的最后一个组成部分。
- 如果它是命名对象的属性或子对象,不能唯一标识该对象,则它会出现在查询字符串中。
关于api - RESTful API : how design URI, 通过查询字符串还是分层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9509986/