我正在创建RESTful API.我读
http://microformats.org/wiki/rest/urls
但是这个网站在设计我的API方面没有给我足够的"好"做法.具体来说,我将编写一个API(目前只有GET方法),它将提供转换地理坐标的功能.
示例:geohash是坐标的单值表示,因此/convert/geohash/u09tvkx0.json?outputformat=latlong
说得通.另一方面/convert/latlong.xml?lat=65&long=13&outputformat=UTC需要两个输入值.
看到我的"问题"?是什么让一个好的API需要多个输入参数?
(试图通过"分析"twitter和FF来"识别"良好做法,但失败了)
就被视为“技术上”正确的 REST URI 而言,使用或不使用查询字符串参数没有区别。在RFC 3986中,它指出:
查询组件包含非分层数据,这些数据与路径组件(第 3.3 节)中的数据一起用于标识资源
这就是为什么您很难找到明确的“最佳实践”。尽管如此,许多 REST API 确实在 URI 中嵌入了多个参数,而不使用查询字符串。例如,要识别汽车的品牌和型号,您将看到具有如下 URI 的网站:cars.com/honda/civic。在这种情况下,两者之间的关系非常明显,因此 URI 中的所有内容都是“可破解的”。当您只有一个唯一标识资源的参数时,坚持使用非查询字符串方法也会容易得多;但如果它类似于搜索查询,那么我可能会将其保留在查询字符串中。这个SO 问题也对不同的方法进行了有趣的讨论。
在上面的示例中,我会坚持使用查询字符串参数。尽管 REST 通常具有更直观的 URL,但这实际上并不是 REST 的目的。REST 更多的是关于超媒体和HATEOAS。
| 归档时间: |
|
| 查看次数: |
1617 次 |
| 最近记录: |