3.2 Google Data APIs基础
3.2.1 背景:Atom和RSS
说到数据API,就不得不提Atom和RSS——数据API本身就是基于RSS和Atom建立的。Atom和RSS是两种最常用的用于Web上交换数据的工业标准,这两种标准都基于XML。比较来说,RSS出现较早,有许多不同版本,许多较老的Web应用程序都支持RSS;而Atom则是最近才出现的标准,具有更多的功能。
Atom同时提供了Atom Publishing Protocol(Atom发布协议,简称APP),该协议是一个基于HTTP的协议,用于发布和编辑Web资源。我们可以通过一个实际的例子来说明APP协议的使用:
■ 使用者通过APP发送一个HTTP GET请求去请求一个特定资源(例如feed或一个URL入口)。
■ 服务器返回一个基于Atom标准格式的该资源的表达。
采用类似的方法,用户还可以使用POST、PUT和DELETE创建、编辑和删除资源。使用HTTP请求发布和编辑是REST方法的核心机制。在不同的上下文中,如果能够发送请求给一个服务器并从该服务器接收到一个服务返回的结果列表是非常有用的。无论是Atom还是RSS都提供了做这件事情的机制,但是Atom提供了一个扩展的机制。数据API使用了Atom的这个标准扩展机制来允许请求。
3.2.2 关于数据API
数据API是一个基于Atom 1.0和RSS 2.0标准的新协议,同时,该协议还包含了APP。
数据API在许多方面扩展了Atom 1.0、RSS 2.0和APP协议,一个数据API feed既可以提供Atom 1.0接口,也能提供RSS 2.0接口,而数据API的发布机制则提供了APP协议接口。
要从一个支持数据API的服务获取信息,可以发送一个HTTP GET请求,该服务会返回一个Atom或RSS feed的结果。
在某些支持数据API更新服务的情况下,如果要更新数据,可以发送一个HTTP POST请求来达成对数据的更新。
几乎所有的应用都可以使用数据API feed提供服务,例如为公众提供信息的blog feeds、新闻feed服务,为私人提供服务的邮件和日程服务等。RSS和Atom模型都是可扩展的,所以每个feed提供商都可以在标准的基础上定义自己的扩展和语法。一个feed提供商可以提供只读的feed(例如新闻feed),或者可读写的feed(例如日程feed)。例如,一个博客应用可以为每个blog提供一个只读的feed,并为所有的blog提供一个支持评论的可读写feed。一个日程应用可以允许用户通过数据API协议发送全文搜索请求,并返回数据API格式的结果数据。
因为数据API建立在基础的技术(HTTP和联合格式)上,所以用户可以用不同的方式发送请求并处理结果数据:传统的同步聚合机制、浏览器的Ajax/Javascript机制,独立应用程序,或者其他任何您喜欢的方式。数据API协议并不基于某种特定的编程语言,任何一种编程语言,只要支持发送HTTP请求和能够处理基于XML的响应,都可以用来编写支持数据API的客户端程序。
创建和删除一个feed的功能取决于服务本身,数据API协议并不提供创建和删除feed的方法。
表3-1列出了数据API功能,并指出它们是否可在其他的相关技术中应用。
表3-1
注意:表中的Atom列的内容对联合格式(syndication format)和发布协议(publication protocol)均成立。
3.2.3 使用数据API的好处
“组织全世界的信息,使其可以被大众使用”是Google的企业目标,但很多情况下,我们需要的服务不仅仅是提供浏览器可访问的数据。此时,Google提供的API允许客户端软件在不使用浏览器的情况下也可以方便地访问和处理数据。
数据API提供了feed、请求和结果处理的通用模型。您可以使用它发送请求,更新任意具有数据API接口的服务。
同步方式是一个有效和常用的提供聚合内容的方法,数据API提供了一种扩展内容类型的机制,特别地,它允许您使用同步机制发送请求和接收查询结果。数据API也可以让您发送数据给Google,更新Google已有的数据。