api - RESTful API : how design URI, 通过查询字符串还是分层?

标签 api rest collections uri

我有一个“普通”网络应用程序,我在其中列出了全局服务。 列出图书的方法有 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 设计吗?

最佳答案

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

  1. 如果它是命名对象的父类(super class)别,则它会出现在路径名中。
  2. 如果它唯一标识命名对象,则它是路径名的最后一个组成部分。
  3. 如果它是命名对象的属性或子对象,不能唯一标识该对象,则它会出现在查询字符串中。

关于api - RESTful API : how design URI, 通过查询字符串还是分层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9509986/

相关文章:

xml - 是否必须在 XML 中指定 DTD?

scala:如何将 ArrayBuffer 转换为 Set?

java - 泛型集合

Scala AbstractSeq[A] 位置

Node.JS:如何在 URL 请求中使用百分号登录?

java - 如何保护 Spring MVC REST 服务 json 响应

java - Hadoop 不产生任何输出

java - Web 服务 java JAX-RS 中的多个参数

java - Apple Autoingestion 类 : username and password "deprecated", 属性文件?

node.js - 为并行请求生成 oAuth nonce