如果不移開RESTful範例,您如何以RESTful方式建模對象驗證?最好解釋我提出的理論用例...我應該如何設計一個RESTful URL來驗證對象
想象一下,您有一個系統具有非常薄的Web層,可以調用後端RESTful服務。假設用戶訪問了註冊表單並提交了它,Web層會將未驗證的數據直接發送給後端服務,並且如果服務以JSON格式的驗證錯誤進行響應,則可以將這些數據作爲HTML發回給用戶。
但是,想象一下,我們希望在表單上擁有AJAX行爲。例如,用戶輸入他們的電子郵件地址,我們希望使用AJAX進行驗證,如果用戶的電子郵件地址已經註冊,則會向用戶發送錯誤。
實施單個調用來驗證電子郵件地址,還是可以在後端服務中發送和驗證整個對象是否合理?如果是後者,你可以使用什麼URL來驗證對象,而不是實際創建它?
我在想更多關於對後端服務的REST調用。想象一下,實際註冊一個用戶的呼叫是一個POST /用戶,我怎麼能基本上做同樣的電話,但只是爲了驗證? – DrewEaster
閱讀此內容:http://restfulobjects.files.wordpress.com/2011/11/restful-objects-spec-052.pdf。它討論發送一個查詢參數「x-ro-validate-only = true」來指示服務器僅僅驗證而不實際發生變異。 – DrewEaster
我會使用上面的分層URL,因爲「emailvalidator」資源是「用戶」資源的一部分。從邏輯角度來看,「用戶」是一個容器,用於存儲用戶數據,在插入它們之前也會驗證新數據。同樣從邏輯的角度來看,對象「emailvalidator」是驗證過程的一部分,這是一個特殊的部分,可以直接使用它自己的URL調用。 (請參閱關於分層URL設計的這個問題:http://stackoverflow.com/questions/7833548/hierarchical-restful-url-design) – kol