2012-11-28 38 views
0

我正在編寫基本上提供兩種資源的REST API:UsersCars。使用API​​,您可以POST/GET每個資源。除PUT/POST/GET之外的自定義操作的REST API

但現在我有一個自定義操作,基本上會給用戶一輛新車。這將需要後端的cron作業並執行操作。它不適合POST/PUT的模型。我只是想知道這是什麼路線?

我想到:

/addNewCarToUser/:user_id 

我知道這個問題過於本地化,但我只是想知道,如果它只是一個主觀判斷或是否有這種類型的請求的約定? 謝謝

回答

2

這要看情況。汽車只有屬於用戶才存在嗎?或者它們可以獨立存在嗎?

如果它們只屬於一個用戶的情況下,我只想有汽車屬於用戶和有這樣的路徑來創建一個新的:

POST /users/:id/cars

或者你也可以指定誰擁有汽車擁有者(似乎違反直覺,但數據方面,汽車通常擁有0或1個擁有者)。該路線可能是:

POST /cars?user_id=######

另一種明智的關係將有三分之一的資源所有權性質,然後你可以創建一個新的汽車,然後一個新的所有權,因爲建立了一輛汽車,它給用戶將會有2個新資源。

POST /cars 
POST /ownerships 
0

那麼,「addNewCarToUser」是一個行爲,因此它違反了資源主體。

我能想到的

/用戶/:USER_ID /汽車

這將是GET或POST的資源。

0

我會執行POST,因爲此操作將導致創建新數據。

不知道什麼命名你使用慣例,但我會做這樣的事情:

/users/:id/new_car # via POST