2012-08-24 23 views
0

我正在寫api。爲了這一點,我一直在使用的路線:理想的API路線

http://api.com/resource 

和我通過,我希望做一個JSON領域內的資源,並從那裏的行動。從程序員和用戶的角度來看,這是一個理想的還是令人滿意的情況?

或者,

會是這樣的:

http://api.com/resource/action 

更加有用,平安,權(自己選)。或者根本不重要?它的工作原理是這樣的,但我的目標是公共消費,並且在變得更加困難之前,我想避免出現任何我不瞭解的問題。

編輯:

要添加更多的細節我不關心的動作是GET,POST,等我有一個路線:

http://api.com/thing 

這是一個POST路線,它創建一個東西。事情並沒有被存儲在數據庫或任何地方,所以創建的東西立即返回響應。用戶可以指定返回的東西被塗上顏色:紅色,黃色或綠色。從用戶的角度來看,是不是更有用指定顏色要求如上的POST數據的一部分,或者有類似的路線:

http://api.com/thing/red 

那裏張貼到回報紅色的東西。

回答

1

基本上,action不需要指定(在URL中或在發送的數據中),因爲HTTP動詞在REST方法中用於描述對資源執行的操作。所以,你的兩個解決方案並不是真正的「符合REST」。你應該做的首先是爲了與一些HTTP動詞路線http://api.com/resources合併到:

像往常一樣,以下約定是更好。您的兩種解決方案對於喜歡習慣和最佳實踐的程序員來說並不理想。但是,您的第二個解決方案是可讀和明確的。這意味着如果您真的想在兩種解決方案之間做出選擇,那麼第二種解決方案似乎更好。但是,如果您想更新您的API以遵循更多REST約定,則應將您的resource視爲真實資源並使用HTTP verbs

我建議你這兩個演示約的REST API:

您可能感興趣的這個其他問題,我給出了答案:Resource and Action URI convention for REST

編輯:根據您的新問題,發送所有數據作爲發佈數據,甚至你的顏色。它會更一致。爲什麼它應該與衆不同呢?只有在描述不同的資源時,才應更改URI。如果顏色只是thing的屬性,那麼您不會描述兩種資源,您應該將顏色與其他所有帖子數據一起發送。

+0

也許我太籠統了。讓我爲我的問題添加更多細節。 – blueblank

+0

我編輯了我的答案。 –