跳到主要内容

GET 请求查询字符串和路径参数的区别

· 阅读需 2 分钟
素明诚
Full stack development

查询字符串(Query String)

GET /resource?id=2

  • 这是传统的方法,将参数添加到 URL 的查询字符串中。
  • 它适用于过滤结果或传递非层级性的数据。
  • 它使得参数可选,可以很容易地添加更多的参数,例如 GET /resource?id=2&sort=asc&category=books
  • 此方法在 URL 的长度和结构上可能有限制,因为有些浏览器和服务器对 URL 长度有限制。

路径参数(Path Parameter)或 RESTful 参数

GET /resource/2

  • 这种方法通常用于 RESTful API,参数是 URL 路径的一部分,前端更喜欢这种。
  • 它适用于指定资源或资源的特定操作,表达了一种层级关系。
  • URL 看起来更加清洁和“友好”,这有时候被称为“clean URLs”或“pretty URLs”。
  • 在设计 RESTful API 时,路径参数常用来获取特定资源或资源集合。

建议使用哪一种?

  • 如果你在设计一个RESTful API,通常会使用路径参数来获取特定资源。例如,GET /users/2 来获取 ID 为 2 的用户。
  • 如果你需要过滤列表或者有很多可选的参数,那么查询字符串可能更合适。例如,GET /users?id=2 可以用来从用户集合中过滤出 ID 为 2 的用户,同时还能添加其他过滤选项,如 GET /users?role=admin