Play框架拾遺之一:HTTP路由

這系列五篇文章,是我在涮www.playframework.cn的讀摘,記錄了一下重要能用得着,可是又不太熟悉的內容,根據層次劃分了五章。

一、路由語法

Play 支持HTTP中規定的GET/POST/PUT/DELETE/HEAD五個方法,同時也支持WebSocket的調用,如須要匹配多個方法能夠用 * ,* 表示接受全部請求方法:html

*   /clients/{id}             Clients.show

URI也支持多個動態部分,如: java

 /clients/{id}/accounts/{accountId}

URI支持正則表達式,如: 正則表達式

/clients/{<[0-9]+>id}   #只容許接受id爲數字的值 
 /clients/{<[a-z]{4,10}>id} #id是長度爲4到10字符的小寫單詞

在URL中能夠指定靜態參數,如 shell

 GET            /pages/home                  Application.page(id:'home') 
 GET            /pages/{id}                    Application.page //當id = home時,二者配置等價,可是根據優先級,會選前者

二、提供靜態資源

Play能夠開放指定目錄,存放靜態資源。如:緩存

GET    /public/           staticDir:public

 也能夠開放文件: 服務器

 GET     /home                   staticFile:/public/html/index.html

三、逆向生成URL

能夠在Java代碼中,反向生成請求的URL,如: url

 Conf/routes:
GET    /clients/{id}      Clients.show

 Java中: code

 map.put("id", 1541); 
 String url = Router.reverse("Clients.show", map).url;

 生成的數據: htm

 GET /clients/1541

四、關於REST

REST全稱爲Respresentational State Transfer ,表述性狀態傳輸,其關鍵規則有:接口

  • 應用的全部功能都被劃分爲資源

  • 每一個資源都使用URI來惟一訪問

  • 全部資源共享統一的接口用於客戶端與資源之間進行狀態傳輸

若是應用使用的是HTTP協議,那麼這些接口是經過可用的HTTP方法來定義,HTTP協議每每經過如下方法來使用資源的狀態:

  • 客戶端-服務器模式。

  • 無狀態模式。

  • 緩存模式。

  • 分層模式。

相關文章
相關標籤/搜索