Play框架拾遗之一:HTTP路由

这系列五篇文章,是我在涮www.playframework.cn的读摘,记录了一下重要能用得着,但是又不太熟悉的内容,根据层次划分了五章。

1、路由语法

Play 支持HTTP中规定的GET/POST/PUT/DELETE/HEAD五个方法,同时也支持WebSocket的调用,如需要匹配多个方法可以用 * ,* 表示接受所有请求方法:

*   /clients/{id}             Clients.show

URI也支持多个动态部分,如: 

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

URI支持正则表达式,如: 

/clients/{<[0-9]+>id}   #只允许接受id为数字的值 
 /clients/{<[a-z]{4,10}>id} #id是长度为4到10字符的小写单词

在URL中可以指定静态参数,如 

 GET            /pages/home                  Application.page(id:'home') 
 GET            /pages/{id}                    Application.page //当id = home时,两者配置等价,但是根据优先级,会选前者

2、提供静态资源

Play可以开放指定目录,存放静态资源。如:

GET    /public/           staticDir:public

 也可以开放文件: 

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

3、逆向生成URL

可以在Java代码中,反向生成请求的URL,如: 

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

 Java中: 

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

 生成的数据: 

 GET /clients/1541

4、关于REST

REST全称为Respresentational State Transfer ,表述性状态传输,其关键规则有:

  • 应用的所有功能都被划分为资源

  • 每个资源都使用URI来唯一访问

  • 所有资源共享统一的接口用于客户端与资源之间进行状态传输

如果应用使用的是HTTP协议,那么这些接口是通过可用的HTTP方法来定义,HTTP协议往往通过以下方法来使用资源的状态:

  • 客户端-服务器模式。

  • 无状态模式。

  • 缓存模式。

  • 分层模式。

你可能感兴趣的:(play,路由)