我对可能是为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模板?
答案 0 :(得分:-1)
对于仅传递2个参数,您可以使用第一种方法(查询字符串参数),这种方法更易于使用
[HttpGet("{commodity_id}/{language_id}")]
public string GetCommodityDetails(string commodity_id, string language_id)
{
string commodityDetails=string.empty;
//your implementation
return commodityDetails;
}