构建 Web 服务客户端:从基础到实践
1. 服务封装与描述语言
在进行 Web 服务请求时,虽然本质上是 HTTP 请求,但每个服务都有其独特的逻辑和结构。如果每次请求都严格遵循发送请求、接收响应、解析响应数据这三个步骤,代码会变得混乱,且无法充分利用服务的底层结构。
因此,聪明的程序员会发现请求特定服务时的模式,并编写封装方法来抽象掉 HTTP 访问的细节。例如,示例 2 - 1 中定义的 print_page_titles 方法就是一个简单的封装。随着服务的流行,用户会用各种语言发布完善的封装库,一些服务提供商也会提供官方封装,如亚马逊为其 RESTful S3 服务提供了五种不同语言的客户端。即便如此,外部程序员仍会编写自己的客户端库,如 jbucket 和 s3sh。
封装使服务编程变得简单,因为封装库的 API 是为特定服务量身定制的,无需考虑 HTTP 细节。然而,每个封装都略有不同,学习一个封装并不能为学习下一个做好准备。
为了解决这个问题,需要一种服务描述语言,它能够描述各种 RESTful 和混合服务。SOAP RPC 社区采用 WSDL 作为服务描述语言,而 REST 社区尚未统一使用一种描述语言。这里推荐 WADL 作为面向资源的替代方案,它是解决该问题最简单、最优雅的方案。此外,还有一个仍在开发中的通用客户端 ActiveResource,它能让你轻松为用 Ruby on Rails 框架编写的多种 Web 服务编写客户端。
2. del.icio.us:示例应用
2.1 del.icio.us 简介
del.icio.us 是一个社交书
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



