楊力
摘 要 在web技術的探索實踐基礎之上提出面向資源的RESTful Web應用設計方案,從資源規劃、控制器設計以及模型建立等方面分析其實現原理,并且在Rails框架下提出RESTful Web應用開發步驟。本文主要分析面向資源的RESTful Web應用,希望能夠對相關人員起到參考性價值。
關鍵詞 面向資源 RESTful Web 應用設計
中圖分類號:TP311 文獻標識碼:A
現階段,基于RESTful Web已經廣泛應用在大部分領域當中,某些大型企業能夠給予REST服務和web服務,盡管各項服務使用了REST風格,然而并沒有實現真正意義上的RESTful Web應用。靜態網站整體呈現REST風格,但是我國在網站基礎之上提供用戶動態服務的RESTful Web應用程序比較鮮見。
1使用Rails實現RESTful Web應用的原理
現階段,Rails已經全面基于REST,但是該框架無法對資源進行直接定義,將web應用功能劃分為若干個控制器,利用控制器暴露資源。因此一個控制器對應一個資源,在Rails控制器當中具備行為功能,能夠通過標準動作操作資源的CRUD。設計控制器就能夠明確資源暴露和統一接口方法等。
在Rails文件當中,使用map定義RESTful Web,主要是應用資源路由。RESTful URI包括模型類和控制器,在URI當中不包含動作,利用HTTP當中的動詞和組合形式能夠操作某個資源,其中Routes主要是將用戶請求路由輸送到制定方法,利用控制器能夠向Rails下發指令,使其將接收到的請求路由分給適宜的類別,有效處理給定請求。如果Rails接收到HTTP請求,則會按照請求目標的首個路徑變量將請求分配給控制器處理。
2基于Rails的RESTful Web應用設計步驟
由于Rails能夠支持REST,因此在設計應用程序時需要從資源角度出發,合理規劃資源。將能夠抽象化的所有東西都定義為RESTful Web中,這樣能夠使所有URI表示特定資源,由各個資源共同組成系統。應用URI對系統結構進行設計,這樣才能夠更好地設計RESTful Web應用。基于Rails的RESTful Web應用設計步驟如下:規劃數據集——建立模型——設計控制器(將數據集分配到各控制器當中,定義資源URI,之后按照系統功能建立資源)——路由(在route當中利用map配置REST路由,針對嵌套資源來說,Rails能夠提供路由定義)——設計視圖(Rails視圖主要是利用ERb模板進行定義,因此在視圖當中需要應用route當中的helper方法,用戶能夠借助于按鈕和鏈接與系統之間進行交互炸,轉移資源鏈接狀態)。
3面向資源的RESTful Web答疑系統
為了全面體現出RESTful Web應用設計思想,此次研究主要是應用網絡答疑系統在Rails框架下實現RESTful Web的應用開發作為案例分析。答疑系統主要是利用網上答疑處理用戶問題,之后用戶可以維護和管理問題,能夠對自身提出的問題和解答進行顯示,如下所示:
3.1數據集規劃
網絡答疑系作為整個系統的簡化部分,能夠將所有數據信息主要涉及用戶,問題和答案。其中“用戶”主要包括教師和學生,其中教師擁有姓名,密碼,簡介和電子郵件屬性,學生擁有用戶名稱,密碼和電子郵件屬性;“問題”主要是學生所提問的問題,主要是學生用戶名問題標題和解答屬性等;“答案”與“問題”配套,主要是由教師提供,包括教師姓名,問題和答案等。
3.2建立模型
在網絡答疑系統當中的實體,可以建立學生,教師,問題和答案等四個數據表,其對應的模型文件和表間關系如下:
class student 3.3控制器設計 面向資源的RESTful Web設計思想主要是將應用功能細分為若干個控制器,之后由控制器暴露資源。所以,設計控制器就是設計資源,系統實現功能主要是定義和命名資源,因此需要采用名詞方式命名資源。Rails控制器可以使用Ruby類實現,在此次研究當中共設計了八個控制器,分別包括以下方面:教師控制器:能夠對教師資源實施CRUD操作,教師控制器的根URI為教師;學生控制器:能夠對學生資源實施CRUD操作,學生控制器的根URI為學生;問題控制器:從屬于學生資源,問題控制器的根為學生ID和問題。由問題控制器當中的“show”能夠完成學生問題,其對應的URI是學生ID和問題;由問題控制器當中的“new”能夠完成學生提問,其對應的URI是學生ID和問題以及“new”。對于非CRUD控制操作的控制器來說,典型問題和最新問題,問題查詢等都是經過資源化處理之后對應的控制器,URI和HTTP動詞以及操作描述等。答案控制器從屬于問題資源,該控制器的根為問題ID和答案,教師解答問題能夠建立新的資源,并且由問題控制器最新問題和問題控制器的創造問題對應答案表的創造操作。 用戶登錄和退出控制器。用戶登錄狀態控制器的根為 “登錄狀態”,登錄和退出對應的Rails方法主要是登錄狀態控制器的“新建”和“歷史記錄”。 4結束語 綜上所述,通過以上分析能夠看出,系統功能創建資源主要包括建立Rails控制器,路由定義和嵌套資源的定義和操作,并且不具備針對功能定義,每一項操作都是由REST URI和HTTP動詞決定。 參考文獻 [1] 李彬峰.基于RESTful Web服務的輕量級電子村務平臺的研究與應用[D].廣州:華南農業大學,2016.