gpt4 book ai didi

api - 设计 RESTful URI

转载 作者:可可西里 更新时间:2023-11-01 15:17:43 24 4
gpt4 key购买 nike

我正在创建 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 是什么?

(试图通过“分析”推特和 FF 来“识别”良好实践,但失败了)

最佳答案

就被视为“技术上”正确的 REST URI 而言,使用查询字符串参数与否没有区别。在 RFC 3986 ,它指出:

The query component contains non-hierarchical data that, along with data in the path component (Section 3.3), serves to identify a resource

这就是为什么您很难找到明确的“最佳实践”。话虽如此,许多 REST API 确实在不使用查询字符串的情况下在 URI 中嵌入了多个参数。例如,要识别汽车的品牌 型号,您会看到具有如下 URI 的网站:cars.com/honda/civic。在那种情况下,非常两者之间的关系很明显,因此 URI 中的所有内容都是“可破解的”。当您只有一个唯一标识资源的参数时,坚持使用非查询字符串方法也会容易得多;但如果它类似于搜索查询,那么我可能会将其保留在查询字符串中。这SO question也对不同的方法进行了有趣的讨论。

在您上面的示例中,我会坚持使用查询字符串参数。尽管 REST 通常具有更直观的 URL,但这实际上不是 REST 的目的。 REST 更多关于超媒体和 HATEOAS .

关于api - 设计 RESTful URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5289119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com