将两个不同参数传递给 REST API 的最佳解决方案是什么?

What is the best solution to pass two different parameters to a REST API?

我怀疑什么是为 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_idlanguage_id)。

在这种情况下,最好使用 POST 请求和包含两个参数的 JSON 负载?像这样:

{
"commodity_id": 1,
"language_id": 2
}

或者对于这种情况,什么是好的 URI 模板?

如果只传递 2 个参数,您可以使用更简单的第一种方法(查询字符串参数)

[HttpGet("{commodity_id}/{language_id}")]

public string GetCommodityDetails(string commodity_id, string language_id)  
{  
string commodityDetails=string.empty;

//your implementation

 return commodityDetails;  
}