Fork me on GitHub

Restful Objects for .NET

Restful Objects是关于领域对象模型的超媒体API的公共规范。该规范的1.0.0 版本刚刚发布并提供下载,并且目前已经出现了两个实现了该规范的开源框架——一个基于Java平台,另一个基于.NET平台, Restful Objects for .NET完整实现了规范,但其目前还处于beta版本,因为它使用了Microsoft Web API框架(ASP.NET MVC4的一部分)。

使用这个框架,你能够根据领域对象模型分别编写POCOs代码,然后创建完整的符合Restful Objects规范的RESTful API,而不用编写任何其他深入的代码。这个录制的在线视频(使用.NET框架)演示了上述工作如何在仅仅几分钟内就可以完成。

这个框架都是建立在实现了naked objects模式——根据领域对象模型利用反射自动创建面向对象的用户界面,并(默认)提供用户活动的公共方法——的现行框架之上的。新的Restful Objects框架以相似的方式反射领域对象模型,但以RESTful API的形式呈现对象的功能,而不是以用户界面的形式。两个新的框架都将反射、对象持久以及其他横向关注点(cross-cutting concerns)的职责委托给了已有框架Naked Objects for .NET

上述的新框架能够识别一些简单的领域对象代码规范以及标示法(在.NET中为‘attributes’)。例如:对象上的任何公有方法都默认会在Restful Objects API中以action提供出来,但允许通过将方法标示为Hidden以重写。如果某个对象定义了公有方法foo([params]) 和另一个公有方法validateFoo([params]),则后者会被认为是用来在前者执行前为传递给前者的参数提供验证逻辑的。

这两个框架还提供了细粒度的基于用户身份和/或角色的授权机制。对于给定的领域类型,如果用户没有被授权查看某个给定的属性、集合或者活动(action),则在相应的表述中指向该对象成员的链接就永远不会呈现给该客户。当用户试图通过直接构造指向该资源的URL以进行访问时,他们将接收到404错误;而如果用户拥有查看该对象成员的权限,但没有编辑的权限,则当试图进行编辑时就会接收到403错误。

相关文章:

Restful Objects简介

posted @ 2012-09-16 17:25  张善友  阅读(3414)  评论(0编辑  收藏  举报