2017-10-09 57 views
1

我對定義API的REST URI的最佳方式有疑問。將兩個不同參數傳遞給REST API的最佳解決方案是什麼?

我有一個提供商品細節的API。

所以我知道我可以做一個GET要求是這樣的:

http://XXX.YYY.ZZZ.TTT:8280/commodity_details/1 

其中commodity_details是我想獲得(商品詳細信息)和什麼的的ID特定商品。這應該是一個適當的REST URI。

好吧,我知道,我也可以通過ID參數爲JSON文件doint一個POST要求是這樣的:

http://XXX.YYY.ZZZ.TTT:8280/commodity_details/ 

和attacching一個JSON有效載荷像這樣我的POST要求:

{ 
"commodity_id": 1 
} 

我想,如果我有一個commodity_id參數也許是更好的第一個版本(把所需的ID到URI中),是嗎?

但是如果我需要第二個language_id參數會發生什麼? (我的API應該也收到此LANGUAGE_ID參數,因此它可以提供適當的語言的internazionalized輸出。

因此,在這種情況下,我需要通過2個參數(commodity_idLANGUAGE_ID)。

在這種情況下最好使用POST請求用JSON的有效載荷,其中包含兩個參數事情是這樣的:?

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

或者對於這種情況可能是一個很好的URI模板?

+2

不要滾你自己 - ['接受-Language'(https://開頭developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language)。通常,對於您在URL中仍然需要的橫切關注點,您可以使用[查詢字符串](https://en.wikipedia.org/wiki/Query_string) - '/ commodity_details/1?language = 2' – jonrsharpe

+0

使用é執行RESTful API的參數並不可靠? 接受語言怎麼樣?它是否可以設置爲選擇想要的語言? – AndreaNobili

+1

1.什麼? 2.我提供了MDN的鏈接,你讀過了嗎? – jonrsharpe

回答

-1

對於剛剛經過兩個參數就可以用第一種方法(查詢字符串參數),這是簡單的去使用

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

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

//your implementation 

return commodityDetails; 
} 
相關問題