2014-02-18 93 views
1

關於RESTful接口命名約定存在大量的問題,圍繞單數與複數資源名稱。有點約定是:REST API:如何命名派生資源?

GET /users Retrieve collection of users 
GET /users/{id} Retrieve user 
POST /users Create user 
PUT /users/{id} Update user 
DELETE /users/{id} Delete user 

但是,上述不起作用時,資源是從環境中派生的值。

我假設的應用有以下端點:

GET /source Get information about the source of the query. 

與迴應:

  • 引薦URL
  • 遠程IP

由於source從環境中得來,不會有不止一個來源,因此c分配資源sources或提供sources/{foo}查找是不實際的。

REST風格建議如何處理這些實體的命名?

回答

0

Fielding博士注意到,在他的著名dissertation 6.2.1節:

..authors需要,他們 由超媒體引用打算語義緊密匹配的標識符,讓參保持 靜即使訪問該引用的結果可能隨時間而改變 。

因此,使用普通source端點是有意義的。

如果您想提供更多通用的IP地址服務,如this one,那將是另一回事。

+1

進一步思考這個問題,我打算在資源名稱中添加後綴「me」,例如https://gist.github.com/gajus/f57136b33ae65ae555f2如果「客戶」端點允許有關其他客戶的信息,則允許將來的驗證設計。 – Gajus

+0

如果這是您的目標,我建議保留該API點的複數名稱,並通過/ cusotmers /:id直接提供任何客戶的簡單訪問權限,但肯定會在某些時候需要。 – mSolujic

+0

自從發佈這個決定以來,這個決定已經改變了很多次......當我完成這個任務時,我會寫一篇博文。 – Gajus