Restful Objects for .NET

Posted 张善友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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简介 ​




以上是关于Restful Objects for .NET的主要内容,如果未能解决你的问题,请参考以下文章

Hammock for REST

for 循环中的 objects.location 请求不会更新

是否可以使用 maproute 在 asp.net mvc 中路由多个参数

RESTful API 设计最佳实践

.net 中用于 RESTful 服务的框架

无法使用类型参数列表调用 nsdictionary 类型的初始化程序(objects:String?for key [] string)