Google API:
your client can interact with the server using any programming language that lets you issue HTTP requests and parse XML-based responses.
这句话是从Google API的协议描述中抄来的。以前觉得API是个神秘的东西,现在想来,API不过是一个HTTP请求和一个XML解析。就是通过不同的URL去对Google的数据库进行不同的操作,和HTML差不多的,只不过API请求的数据是规范化的XML,可以被我们编程进行二次开发的。
gdata-python-client:
该客户端封装了对API的操作,就是封装了HTTP的请求和XML的解析,直接返回的就是python的数据类型。主要使用了几个python的基本库:StringIO,httplib, urllib, 和 elementtree。
urllib库没有用来进行HTTP请求,主要是用来进行一些请求的字符串的处理,如quote,unquote,quote_plus,unquote_plus。
httplib库,客户端对该库进行了封装,如进行代理封装等。
StringIO库,该库使用很少,只是在获取到XML字符串的时候,使用一下。
Elementtree库,该库使用的比较多,主要是把XML转变成python的基本类型。
该客户端使用的XML是一个ATOM的协议。有一个ATOM的基础库,主要包含了HTTP的基本请求如请求,插入,修改,验证等和ATOM的基本解析。然后其他的API如相册,视频等,都从这个库继承下来,各自添加不同的数据处理等。具体的细节还是很多的,只是做了些小的研究。
不明白的东西:
1. 为什么不使用urllib要另外封装httplib呢?
2. 命名空间是怎么样的呢?
3. 为什么用atom这种数据格式而不是JSON或RSS呢?
感受:
要研究的东西太多了,一个问题又会引出一大堆没遇到的问题,而且有很多与工作无关的。还是先把问题记下来,等工作没有那么忙的时候再来研究吧。