当前位置:  开发笔记 > 编程语言 > 正文

属性:当前的REST架构工具是否仅限于树结构?

如何解决《属性:当前的REST架构工具是否仅限于树结构?》经验,为你挑选了1个好方法。

历史上操作系统目录结构是树:

C:

视窗

SYSTEM32

程序文件

共同文件

IE浏览器

REST架构模拟同样的事情:

HTTP://...//Thomas/

HTTP://...//Thomas/Mexico/Year2003/Photos

HTTP://...//Thomas/Mexico/Year2007/Photos

HTTP://...//Thomas/Finland/Year2005/Photos

HTTP://...//Thomas/Finland/Year2010/Photos

HTTP://...//Thomas/Finland/Year2010/Videos

HTTP://...//Thomas/USA/Year2005/Photos

但是,看看当前的结构,我需要进行搜索:

所有不是芬兰的照片?

所有2005年拍摄的照片?

时间线上的所有图片?

使用每个树层次结构组合执行REST接口效率不高.您需要更有效的信息管理; 你需要一个属性系统而不是树形结构.(哦,为什么操作系统不是基于属性?)

StackOverflow和Google似乎使用属性和语法"+" - 标记如下:

http://www.stackoverflow.com/Tags/asp.net+iis7

http://www.google.com/search?&q=iis7+asp.net

今天的框架如WCF和ASP.NET MVC对RESTful树结构有很好的支持.但是对属性结构有支持吗?难道你不会将属性结构称为REST吗?

我想创建一个属性-WebService并将其与Silverlight-client中的LINQ一起使用...哪种方法最好?:-)



1> Darrel Mille..:

为了创建有效的REST接口,您需要确定对客户端应用程序有意义的资源.如果你看一下你的用例:

所有不是芬兰的照片?所有2005年拍摄的照片?时间线上的所有图片?

您需要回答的问题是,这需要三个资源还是只需一个.我假设您想要的不仅仅是这三个查询,因此最灵活的解决方案是定义一个"图片集合"的通用资源.

/Thomas/pictures

从这里开始,您希望能够使用查询参数来限制此资源的内容.

/Thomas/pictures?country=not-finland
/Thomas/pictures?year=2005

在第三个项目的情况下,为该项目创建单独的资源可能是有意义的.

/Thomas/PictureTimeline

在其他情况下,创建其他资源(如.)可能是有意义的

/Thomas/FavouritePictures

重要的是确定要将模型建模为资源的关键概念,然后为这些资源分配URL.尝试通过URL空间进行REST设计会让你头脑发热.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有