5、构建 Web 服务客户端:从基础到实践

构建 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 是一个社交书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值