Zend_Gdata is a set of classes to implement Google's GData protocol. It includes an interface for authentication as well as concrete interfaces to Google's Gdata enabled services such as Calendar, Google Base, Blogger, and Code Search
3. Component Requirements, Constraints, and Acceptance Criteria
This component will follow Google's Data API Protocol.
This component will provide an authentication method per Google's AuthSub authentication scheme.
This component will provide an authentication method per Google's ClientLogin authentication scheme.
This component will throw exceptions when an authentication error is received.
The generic Gdata class will allow subclassing.
4. Dependencies on Other Framework Components
Zend_Exception
Zend_Feed (and subclasses)
Zend_Http_Client
5. Theory of Operation
The Gdata module leverages several existing framework modules to facilitate HTTP request/response and feed parsing. The Gdata module serves mainly to provide convenience methods to create queries against the Google webservices. Because Google requires a somewhat complicated authentication scheme, Gdata implements the simplest interface possible to provide authentication to the webservices.
6. Milestones / Tasks
Milestone 1: Working prototype checked into the incubator supporting use cases #1, #2, #3, #4
Milestone 2: Better API for return types and namespaced request fields.
Milestone 3: Unit tests exist, work, provide at least 80% code coverage, and are checked into SVN.
Milestone 4: Initial API documentation exists.
Milestone 5: Support for additional Google services: Blogger, Code Search
Milestone 6: Initial manual documentation exists.
7. Class Index
Zend_Gdata
Zend_Gdata_Exception
Zend_Gdata_AuthSub
Zend_Gdata_ClientLogin
Zend_Gdata_Base
Zend_Gdata_Blogger
Zend_Gdata_Calendar
Zend_Gdata_CodeSearch
8. Use Cases
UC-01: manual Google Calendar query/write using Gdata class
UC-02: manual Google Base query using Gdata class
UC-03: Google Calendar query/write using Gdata_Calendar class
<p>Since this component is geared towards consuming the Google webservices API called GData, and the fact that how the current web services components are categorized, it is irrelevant to just name it Zend_Gdata_*. Atleast that's what I think. There is an incubator proposal titled Zend_Service_Google which I'm also proposing to be more tied in to the ZF categorizing and naming scheme.</p>
<p>Both are basically aimed at accomplishing the same goal by utilizing the Google webservices. If what I'm proposing sounds more rigid to the philosophy of the framework, then John Herren and Aissam can discuss their view points on what naming will be more appropriate for this. And I would love to contribute to it either way, once a proposal is finalized. Cheers.</p>
<p>Here are the outstanding items to do on Zend_Gdata:</p>
<ul class="alternate">
<li>Test with the new refactored Zend_Http_Client in the incubator.</li>
<li>Integrate with new Http Client once it is reasonably stable.</li>
<li>Integrate the Google ClientLogin authentication mechanism.</li>
<li>Write helper classes for Calendar, Blogger, Base, and CodeSearch.</li>
<li>Write fuller API reference docs.</li>
<li>Write ZF manual docs in the DocBook format.</li>
<li>Create a test suite solution. It's understood that testing is tricky since it requires contacting a remote service.</li>
</ul>
<p>The Gdata component is currently checked into the Laboratory subversion repository. The reason it isn't in the incubator yet is that the version of Zend_Gdata bundles an implementaiton of Zend_Http_Client that has a distinct interface from both the core and incubator implementations. Once Zend_Gdata is adapted to use the latest Zend_Http_Client interface, we can move Zend_Gdata to the incubator.</p>
<p>ClientLogin class committed to repository. Developers can now create an authenticated Zend_Http_Client object class using Either Zend_Gdata_AuthSub or Zend_Gdata_ClientLogin.</p>
<ac:macro ac:name="note"><ac:parameter ac:name="title">"Component moved to Core."</ac:parameter><ac:rich-text-body>
<p>This component is a special case that has been given authorization to move<br />
directly to Core in a fast-track manner.</p></ac:rich-text-body></ac:macro>
4 Comments
comments.show.hideOct 20, 2006
Inash Zubair
<p>Since this component is geared towards consuming the Google webservices API called GData, and the fact that how the current web services components are categorized, it is irrelevant to just name it Zend_Gdata_*. Atleast that's what I think. There is an incubator proposal titled Zend_Service_Google which I'm also proposing to be more tied in to the ZF categorizing and naming scheme.</p>
<p>Both are basically aimed at accomplishing the same goal by utilizing the Google webservices. If what I'm proposing sounds more rigid to the philosophy of the framework, then John Herren and Aissam can discuss their view points on what naming will be more appropriate for this. And I would love to contribute to it either way, once a proposal is finalized. Cheers.</p>
Nov 07, 2006
Bill Karwin
<p>Here are the outstanding items to do on Zend_Gdata:</p>
<ul class="alternate">
<li>Test with the new refactored Zend_Http_Client in the incubator.</li>
<li>Integrate with new Http Client once it is reasonably stable.</li>
<li>Integrate the Google ClientLogin authentication mechanism.</li>
<li>Write helper classes for Calendar, Blogger, Base, and CodeSearch.</li>
<li>Write fuller API reference docs.</li>
<li>Write ZF manual docs in the DocBook format.</li>
<li>Create a test suite solution. It's understood that testing is tricky since it requires contacting a remote service.</li>
</ul>
<p>The Gdata component is currently checked into the Laboratory subversion repository. The reason it isn't in the incubator yet is that the version of Zend_Gdata bundles an implementaiton of Zend_Http_Client that has a distinct interface from both the core and incubator implementations. Once Zend_Gdata is adapted to use the latest Zend_Http_Client interface, we can move Zend_Gdata to the incubator.</p>
Nov 27, 2006
John Herren
<p>ClientLogin class committed to repository. Developers can now create an authenticated Zend_Http_Client object class using Either Zend_Gdata_AuthSub or Zend_Gdata_ClientLogin.</p>
Dec 16, 2006
Bill Karwin
<ac:macro ac:name="note"><ac:parameter ac:name="title">"Component moved to Core."</ac:parameter><ac:rich-text-body>
<p>This component is a special case that has been given authorization to move<br />
directly to Core in a fast-track manner.</p></ac:rich-text-body></ac:macro>