2015-07-13 41 views
0

我有一個關於web api的問題。我的模特是用戶 - *預算 - *項目。我敢肯定,下面的方法是不正確的得到一個項目Web API URL理解

http://localhost/api/items/getitem/userid/budgetid/planFact/inOut/month/ 

,我必須先授權用戶,然後只返回他的數據,但我不知道我能做到這一點。

在uri中傳遞大量參數來檢索需要的數據是正確的嗎?

回答

1

假設這是一個簡單的API,您應該能夠在SSL(https)下使用Basic Auth。在這個方案下,你可以通過標題中的每個請求傳遞用戶的憑證。這使您可以隨時訪問用於過濾數據的用戶名。如果這是家庭作業,你可能只是說「而且我會在現實世界中使用SSL」 - 請問你的老師。

就URI設計而言,從您的問題中很難理解這些路徑段應該表示什麼,但是您可能希望避免看起來像動詞的任何內容(例如getitem)。考慮支持這些調用:

GET /items/{itemId} 
// returns details on a specific item 

GET /items?userId={userId}&budgetId={budgetId} 
// returns a list of all items matching the query parameters 
// may return just ids, limited detail, or as much detail as GET /items/{itemId} 

這不是真的清楚什麼planFactinOut應該是。如果month要指定特定月份的項目,那麼也應該是查詢參數。

如果你的URI不包含那麼多的路徑段,那麼每個人都會很高興。