2012-07-11 109 views
0

我正在關注這些教程,並且必須說他們是很棒的教程!Zend_Rest_Controller和Zend_Rest_Route使用案例

http://www.techchorus.net/create-restful-applications-using-zend-framework

我只是困惑的Zend_Rest抽象方法的整個概念。在這些例子中,你只看到

指數 POST GET PUT DELETE

雖然這些功能是有意義的,我想弄清楚如果整個架構僅限於那些抽象方法。我正在考慮一個用例,其中用戶想要使用API​​來更新特定的字段,讓我們說用戶表,或者用戶想要更新活動表的另一種情況。這兩個表的業務邏輯覆蓋在一個RESTful api控制器中。我將通過爲每個表創建特定的更新/發佈方法來解決這個問題,並且有函數參數來定義哪些字段正在更新。這種實現是否符合REST,如果是的話,你如何超越POST,GET,PUT,DELETE方法?

回答

0

REST體系結構確實支持資源的層次關係,並且您的資源不以任何方式與數據庫綁定。您的「用戶」資源可能具有映射到用戶表中的用戶名和密碼字段的子資源「憑證」,因此您可以在「domain.com/users/{userId}/credentials」上執行PUT請求。你將通過創建一個控制器來實現這一點,比如UserCredentials,更新邏輯將在putAction中。

你將不得不修改這個工作在Zend中的路由。請參閱How to set up Hierarchical Zend Rest Routes?

+0

似乎是一個非常嚴格的解決方案,因此每次更改數據庫方案時,我也必須更新所有這些自定義路由。我只想到另一個更簡單的解決方案,如果我將表和字段定義爲get參數並僅使用此函數func_get_args()獲取所有參數並按key => value對其進行排序,那該怎麼辦? – shiva8 2012-07-11 23:36:30

+0

封裝數據庫結構以最小化資源和URL的更改。設計您的資源,使其不反映您的數據庫結構。請記住,PUT請求可以包含多個鍵值對。 – siimsoni 2012-07-11 23:40:28