翻翻以前的哦feed看到你的问题,试着回答下吧。
A. 观点1中这个“ID”如何定义?
我粗略看了下原文,文中并没有提及一定要用URI,不能用URL这种观点。URL和URI的介绍很多,怎么可能没有一个明确的说服呢?
而且,无论用URL或者URI来说明ID如何定义这章节都不冲突。就跟说北京有故宫博物馆和中国有故宫博物馆一样的道理。
B. 要为那些“事物”定义ID?
你的问题是“那么对于这种模式的资源,REST又如何来表示呢?”
我试着回答,假设你有个查询需要查询所有姓为“张”,并且出生日期在1950年前的。那么定义URL的时候,这种集合性的资源ID是后台解析这个查询逻辑的地方定义的。举个例子,老板给你一个feature让你做,这个feature要做很多逻辑。那么老板给你讲的时候,不会把这个case的逻辑说一遍,只会告诉你case名称,这个case名称就是ID。不要想着把整个case的实现逻辑在URI中体现,仅仅定义个ID即可。
C. 使用链接指向任何可以标识的事物
不清楚具体哪个地方不理解,其实这个不用较真。如果你以前写web的时候就已经follow了些类似的REST风格,那么相比就是没太大的区别。
而且就REST的风格来讲,国外的一些大牛们也吵来吵去的。所谓的风格,不局限于一定要按照某种方式去写才叫REST。理解概念,将其应用到web开发中去,外面的人看懂没看懂不一定强制要求,Team内能达成一致并相互理解就算成功。
D. “标准方法”是否够用?
既然叫做标准方法,就是就是解决web开发中一些标准问题,例如CRUD。
当然这个不是绝对的,我曾经看到过一些REST实践的人不用DELETE,GET来做,仅仅用POST就可以实现REST开发,可向其概念与应用存在着并非绝对的关系。
你说的是否够用我想能你从业务角度考虑问题,不是先选技术,再去解决特定业务问题。而是从业务角度寻找最佳技术解决方案。
如果业务系统很大,REST无法完美的解决相应case问题,或者说能够解决但会很复杂。那么你可以考虑基于WSDL的WebService来实现,很多文章都在说两个的区别和应用场景,你可以参考一下。
E. 无状态通信如何实现
这个我这样理解,跳出基于HTML4标准的Web开发方式。想想如下场景:
1. 基于CS模型的客户端开发方式,例如用WPF,SWT,WinForm等。
2. 基于RIA Web框架的开发访方式,例如Silverlight, Flash, JFX等。
3. 基于HTML5的开发模式。
4. 基于脚本语言的开发模式,例如用Ruby或者Grovy访问web等。
以上拙见,就叨叨这些吧。
回复 更多评论