GET 请求查询字符串和路径参数的区别
· 阅读需 2 分钟
查询字符串(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
。