2013-03-04 103 views
3

我們的服務器當前提供了一個REST-ful API,允許用戶按照預期收集CRUD資源。混合資源(REST)和非資源

如果我們有一些不是資源的東西,比如輔助數據,會發生什麼?我們必須堅持嚴格的REST-ful慣例嗎?

舉例來說,假設我們有狗在一個REST API FUL:

GET: /dogs/ 
GET: /dogs/:id 
POST: /dogs/ 
PUT: /dogs/:id 
DELETE: /dogs/:id 

是沒關係添加類似:

GET: /util/randomNumber/ 

返回一個隨機數?

這不是一個真正的資源,因爲您不會更新它,或刪除它,並且不能成爲集合的一部分。這不是可靠的,因爲它會在每次擊中時改變。

(注意,我實際上並沒有試圖產生隨機數字,只是一個例子)。

回答

1

是的,它是確定有佈置得像

@GET 
@Path("util/randomNumber") 
public Response getRandom(...) 
1

你的隨機數生成方法在RESTful的環境中,不是每一個資源需要有所有CRUD操作。擁有隻讀非收集資源是完全合法的。

1

是的,你可以使用一些服務來通過GET請求來做到這一點。

Apigee team討論顯示了許多有趣的方式和標準來處理RESTful服務中的URL和資源。

我已閱讀Apigee的e-book的第19頁,這是一種關於轉換的方法,我認爲這對您有用。

在你的情況,我認爲最好的方式對服務產生一些隨機值工作,就是:

GET: /util/generateRandomNumber/ 

在這種情況下,你確定你的行動,產生一個隨機數。或者,讓我們嘗試做的更好:

GET: /util/generate?type=number 

在這種情況下,你有更多的靈活性,把另一類型產生。

而且你還可以把一些查詢參數,如:

GET: /util/generate?type=number&min=0&max=100 

將返回一個數字從0到100

這是我的觀點,我希望我幫助你。