这两天学习REST及其java实现框架Restlet.具象状态传输(Representational state transfer,REST)是设计基于命名资源而非消息的松耦合应用程序的一种风格。构建 RESTful 应用程序的最困难的部分在于确定要公开哪些资源.个人认为它跟DDD联系的很紧密,特别是REST中的“资源”,我个人理解它就是从领域模型中的模型而来的。
我们先来看一下restlet core api吧:
Overview of a Restlet architecture
Here is a diagram illustrating how the API composes components, connectors, virtual host and applications. Applications are in turncomposed of resources.
用白说来讲就是:Application通过Router 将某个URI与Resource绑定在一定,而一个componet可能含有多个Application,
还有Representation 这个类其实也很重要。Representation entity:Restlet中全部的接受和返回对象都Representation类的子类。
如在WEB APP中经常需要从一个FORM中拿到其Representation(getWebRepresentation()
)或组装成一个Representation
Form(Representation webForm)
,以便客户端与服务器进行交互。我们知道REST是以资源为中心的,一个URI就代表了对这个资源的CURD操作。@Path这个注解提明了
哪个操作是由该资源的那个方法来实现的如:
@POST
@Path("add")
public String addStudent(Representation entity) {
}
...
@DELETE
@Path("delete/{id}")
public String deleteStudent(@PathParam("id") int id) {
int status = ResourceHelper.deleteStudent(id);
return String.valueOf(status);
}
representation package overriew:
Restlet 对表现层的技术支持也就是通来representation这个类来实现的,representation
Restlet并没有你Setvlet API那样有自已的JSP作表现的技术,它是通过将这三种模板技术整合起来而已如 : XSLT, FreeMarker and Apache Velocity
The org.restlet.representation package contains common representation data elements. Here is a hierarchy diagram with the core Representation classes:
Overview Representation package
当然restlve只是提供了一个入口,碰到要对数据库进行CURD操作时,基具体实现还是由JDBC等技术来实现.
posted on 2012-05-24 12:19
jimmy2009 阅读(381)
评论(0) 编辑 收藏 所属分类:
系统架构