【发布时间】:2015-04-19 20:57:50
【问题描述】:
在设计 RESTful API 时,如果 GET 请求仅在与请求关联的特定参数时才有意义,该怎么办?参数是否应该作为查询字符串传递,如果是,当所有参数未指定或格式不正确时该怎么办?
例如,假设我有一个 Post 资源,可以通过 `api/posts` 端点访问。每个帖子都有一个地理位置,只有在指定帖子可能驻留的区域时才能检索帖子。因此,需要三个参数:纬度、经度和半径。
在这种情况下,我可以想到 2 个选项:
1. 将参数放入查询字符串中:api/posts/?lat=5.54158&lng=71.5486&radius=10
2. 将参数放入URL:api/posts/lat/5.54158/lng/71.5486/radius/10
以下哪种方法是正确的?将所需参数放在查询字符串中似乎是错误的,但后一种方法感觉有点“丑陋”。
PS。我知道已经有很多关于这个主题的讨论(例如:REST API Best practices: Where to put parameters?),但我的问题专门针对需要参数而不是可选参数的情况。
【问题讨论】:
标签: rest