这系列五篇文章,是我在涮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协议往往通过以下方法来使用资源的状态:
客户端-服务器模式。
无状态模式。
缓存模式。
分层模式。
来源:oschina
链接:https://my.oschina.net/u/1386633/blog/498136