Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向RESTAPI传递两个不同参数的最佳解决方案是什么?_Rest_Api_Web Services_Restful Url - Fatal编程技术网

向RESTAPI传递两个不同参数的最佳解决方案是什么?

向RESTAPI传递两个不同参数的最佳解决方案是什么?,rest,api,web-services,restful-url,Rest,Api,Web Services,Restful Url,我怀疑什么是为API定义RESTURI的最佳方法 我有一个API,提供商品的详细信息 所以我知道我可以做一个获取请求,如下所示: http://XXX.YYY.ZZZ.TTT:8280/commodity_details/1 http://XXX.YYY.ZZZ.TTT:8280/commodity_details/ { "commodity_id": 1, "language_id": 2 } 其中,commodity\u details是我想要获得的(商品详情),而1是特定商品的ID

我怀疑什么是为API定义RESTURI的最佳方法

我有一个API,提供商品的详细信息

所以我知道我可以做一个获取请求,如下所示:

http://XXX.YYY.ZZZ.TTT:8280/commodity_details/1 
http://XXX.YYY.ZZZ.TTT:8280/commodity_details/
{
"commodity_id": 1,
"language_id": 2
}
其中,commodity\u details是我想要获得的(商品详情),而1是特定商品的ID。这应该是一个适当的RESTURI

好的,我知道我也可以将ID参数传递到JSON文档中,并发出如下请求:

http://XXX.YYY.ZZZ.TTT:8280/commodity_details/1 
http://XXX.YYY.ZZZ.TTT:8280/commodity_details/
{
"commodity_id": 1,
"language_id": 2
}
并将类似这样的JSON负载附加到我的POST请求:

{
"commodity_id": 1
}
我认为,如果我有一个商品id参数,那么第一个版本(将所需id放入URI)可能会更好,是吗

但是如果我需要第二个语言id参数,会发生什么?(我的API还应接收此语言id参数,以便它能够以适当的语言提供国际化输出

因此,在本例中,我需要传递两个参数(商品id语言id

在这种情况下,最好使用一个包含两个参数的JSON有效负载的POST请求,如下所示:

http://XXX.YYY.ZZZ.TTT:8280/commodity_details/1 
http://XXX.YYY.ZZZ.TTT:8280/commodity_details/
{
"commodity_id": 1,
"language_id": 2
}

或者,对于这个场景,什么样的URI模板才是好的呢?

对于只传递两个参数,您可以使用第一种方法(查询字符串参数),它使用起来更简单

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

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

//your implementation

 return commodityDetails;  
}

不要滚动你自己的-。一般来说,对于你仍然想要在URL中的横切关注点,你可以使用-
/commodity\u details/1?language=2
参数withéis not orry实现RESTful API?接受语言呢?它是一个可以设置为选择所需语言的头吗?1…什么?2.我提供d链接到MDN,你读了吗?