摘要: 何时使用自定义HTTP 方法问题描述您想知道使用自定义HTTP方法的影响。解决方案避免使用非标准的自定义HTTP方法,因为引入新方法后,就不能依赖那些只了解标准HTTP 方法的现有软件了。您应该设计一个可以抽象此类操作的控制器(详见2.6 节)资源,并使用HTTP 的POST方法。问题讨论扩展HTTP 方法最重要的好处是,它可以让服务器为扩展方法定义清晰的语义并保持接口一致。但是,除非得到广泛支持,否则扩展方法将会降低互操作性。例如,WebDAV 将MOVE 的语义定义为“逻辑上与复制一致,接着是一致性维护处理,最后进行源文件的删除,所有这三个动作是以原子操作的形式来执行的。”任何客户端都可以 阅读全文
posted @ 2011-09-28 16:49 博文视点(北京)官方博客 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 如何维护应用程序状态当您在阅读关于REST 的文章时,经常得到这样的建议——在客户端保存应用程序状态。但什么是“应用程序状态”?应当如何在客户端保存这些状态?本节描述了保存应用程序状态的最佳实践。问题描述您想知道如何管理RESTfulWeb 服务的状态,这样就不需要依赖于服务器内存中的会话了。解决方案将应用程序状态编码到URI里,并通过链接在表述中包含这些URI(见第5 章)。让客户端使用这些URI 与资源进行交互。如果状态过大,或出于安全或隐私考虑不能在网络中传输,则可以在持久化存储(如数据库或文件系统)中存储应用程序状态,并将其状态的引用编码在URI 中。问题讨论考虑一个简化的汽车保险应用 阅读全文
posted @ 2011-09-28 16:36 博文视点(北京)官方博客 阅读(252) 评论(0) 推荐(0) 编辑
摘要: --何时需要权衡可见性本节讨论了一些可能需要对可见性做出权衡的常见场合。问题描述您想知道有哪些常见场合可能需要让请求和响应降低对协议的可见性。解决方案当有多个共享数据的资源,或一个操作总是要修改多个资源时,请考虑降低可见性,以得到更好的信息抽象、更松散的耦合程度、更好的网络效率、更好的资源粒度,或者纯粹为了方便客户端使用。问题讨论可见性经常与其他架构要求相冲突,如抽象、松耦合、效率和信息粒度等。例如,考虑一个“人”资源与一个相关的“地址”资源,任何客户端都可以提交一个GET请求得到这两个资源的表述,但为了方便客户端,服务器端可能会在“人”的资源表述中包含“地址”资源,就像下面这样:# 获取“人 阅读全文
posted @ 2011-09-28 16:16 博文视点(北京)官方博客 阅读(141) 评论(0) 推荐(0) 编辑