2016-07-28 26 views
1

假設我正在創建一個用戶。我會如何處理REST中的非典型操作?

POST http://example.com/users 

該用戶記錄被創建一個電子郵件熄滅,然後我想以後使用相同的API來爲該用戶做一個完整的註冊。註冊包括,標記他們的電子郵件驗證。爲他們創建一個空賬戶,以及其他許多設置類型的東西。假設所有這些都可以放在一個控制器中。哪些是RESTful仍然?或可以接受?

A) REGISTER http://example.com/users/1 
B) POST http://example.com/users/1?action=register 
C) POST http://example.com/users/1/register 
D) POST http://example.com/users/1/registrations 

我一直在做很多研究,並且還沒有找到指導資源。

+0

我會與C)後發令牌。如果沒有令牌500,返回200好或404如果錯誤 –

+0

這也是我的直覺。 – Iwnnay

+0

你可以在標題位置返回激活鏈接的鏈接,也可以是資源 –

回答

1

這是一種主觀的。

A,B和C不是RESTful,D可能是,可以接受。

爲什麼?

答:REGISTER不是HTTP方法。

B:端點的行爲取決於查詢參數。 (URI不能自動描述)

C:你不訪問資源,但給一個動作

d:有你有訪問該資源的想法

我不知道所有背後的項目(安全,數據庫架構..),但我會建議像

POST http://domain.com/users/1/confirmationToken 
POST http://domain.com/users/1/emails/1/confirmationToken 
+0

我可以問問這是如何在服務器上重定向,如'a = a&b = b'或'x = a/b/c'? – JOUM

+0

我不明白你的問題。 – lolmx

+0

給定的URL不是一個真實的文件,所以某種重定向必須繼續或? – JOUM