Google Data APIとZend_Gdataの連携
冒頭、Zend_Gdataは「PHPとGoogleサービスを連携させるための関数の集合体」であると述べましたが、もう少し踏み込んでみましょう。
概要
まずはざっくりと概要をつかみましょう。

[1]クライアントが要求を送信
クライアントが何らかの要求をPHPアプリケーションに送信します。
[2]Zend_Gdataが要求をGoogleサービス向けに加工
Googleの各サービスに特化したZend_Gdataの各クラスが、受け取った要求をGoogleサービスへ送信するリクエストのパラメータとして設定します。
[3]Zend_Http_ClientがGoogle Data APIにリクエストを送信
Zend_Gdataから内部的に呼び出されるZend_Http_ClientがGoogle Data APIに対してHTTPリクエストとしてパラメータを送信します。Zend_Http_ClientはZend Frameworkの提供する、HTTPリクエストを簡単に送信するためのクラスです。
Google Data APIは要求としてHTTPリクエストを受け付ける仕様になっています。PHPアプリケーションでデータを取得したい場合はHTTP GETを、更新したい場合はHTTP PUTを送信することになります。
[4]Google Data APIがレスポンスとしてXMLファイルを送信
Google Data APIでは受け取ったHTTPリクエストを基に対象のGoogleサービスとデータの送受信を行います。HTTP GETを受けた場合には何らかのレスポンスを、Google Dataと呼ばれるフィードとしてPHPアプリケーション側に返信します。Google Dataの実体は、RSS(Really Simple Syndication)やAtom形式のXML文書です。
[5]受信したXMLファイルをZend_GdataがPHPアプリケーション向けに加工
Zend_Http_Clientが受信したXMLファイルの内容を、Zend_Gdataの関数を利用して取得します。XMLファイルの要素をそのままPHPアプリケーションで抜き出すのは面倒です。しかし、Zend_Gdataでは、対象のGoogleアプリケーションごとに特化した関数で、XMLの要素を簡単に抜き出すことができます。
[6]クライアントに結果を表示
Zend_Gdataの関数を利用して、表示に必要な情報を取得し、クライアントに結果を返します。
Zend_Gdataのクラス
Zend_Gdataで提供されているクラスはその役割、つまり継承元のクラスによって下記の種類に分類されます。
| 種類 | 継承元 | 内容 |
| サービスクラス | Zend_Gdata_App | Googleのサービスとやり取りを行うもの |
| クエリクラス | Zend_Gdata_Query | サービスからデータを取得するクエリを作成 |
| フィードクラス | Zend_Gdata_App_Feed | サービスから取得したフィードを表す |
| エントリクラス | Zend_Gdata_App_Entry | サービスから取得した個々のエントリを表す |
| その他のデータモデルクラス | Zend_Gdata_App_Extension | サービスから取得したデータ保存、サービスに送信するデータ構築などを行う |
上記の各クラスを継承した、各サービス専用のクラスや汎用的なクラスがあり、それを利用することでGoogleのサービスと円滑にやりとりが行えます。
