【发布时间】:2017-10-09 08:57:11
【问题描述】:
我怀疑为 API 定义 REST URI 的最佳方式是什么。
我有一个提供商品详细信息的 API。
所以我知道我可以像这样发出 GET 请求:
http://XXX.YYY.ZZZ.TTT:8280/commodity_details/1
其中 commodity_details 是我想要获取的(商品详情),1 是特定商品的 ID。这应该是正确的 REST URI。
好的,我知道我也可以将 ID 参数传递到 JSON 文档中,像这样的 POST 请求:
http://XXX.YYY.ZZZ.TTT:8280/commodity_details/
并将这样的 JSON 有效负载附加到我的 POST 请求中:
{
"commodity_id": 1
}
我认为如果我有单个 commodity_id 参数,第一个版本可能会更好(将所需的 ID 放入 URI),是吗?
但是如果我需要第二个 language_id 参数会怎样? (我的 API 也应该接收这个 language_id 参数,以便它可以提供适当语言的国际化输出。
所以在这种情况下,我需要传递 2 个参数(commodity_id 和 language_id)。
在这种情况下,最好使用带有两个参数的 JSON 有效负载的 POST 请求?像这样的:
{
"commodity_id": 1,
"language_id": 2
}
或者对于这种情况,什么是好的 URI 模板?
【问题讨论】:
-
不要自己动手 -
Accept-Language。通常,对于您仍然希望在 URL 中使用的横切关注点,您可以使用 the query string -/commodity_details/1?language=2 -
带有é的参数是不是很难实现RESTful API?那么接受语言呢?是不是可以设置为选择想要的语言的header?
-
1. ...什么? 2. 我提供了 MDN 的链接,你看了吗?
标签: rest api web-services restful-url