All requests made using Zend_Rest_Client return a
Zend_Rest_Client_Response object. This object has many
properties that make it easier to access the results.
When the service is based on Zend_Rest_Server,
Zend_Rest_Client can make several assumptions about the
response, including response status (success or failure) and return
type.
Example 678. Response Status
<?php
$result = $client->sayHello('Davey', 'Day')->get();
if ($result->isSuccess()) {
echo $result; // "Hello Davey, Good Day"
}
In the example above, you can see that we use the request result as
an object, to call isSuccess(), and then because of
__toString(), we can simply echo the
object to get the result. Zend_Rest_Client_Response
will allow you to echo any scalar value. For complex types, you can
use either array or object notation.
If however, you wish to query a service not using
Zend_Rest_Server the
Zend_Rest_Client_Response object will behave more like
a SimpleXMLElement. However, to make things easier, it
will automatically query the XML using XPath if the property is not
a direct descendant of the document root element. Additionally, if
you access a property as a method, you will receive the PHP value
for the object, or an array of PHP value results.
Example 679. Using Technorati's Rest Service
<?php
$technorati = new Zend_Rest_Client('http://api.technorati.com/bloginfo');
$technorati->key($key);
$technorati->url('http://pixelated-dreams.com');
$result = $technorati->get();
echo $result->firstname() .' '. $result->lastname();
Example 680. Example Technorati Response
<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Technorati API version 1.0 /bloginfo" -->
<!DOCTYPE tapi PUBLIC "-//Technorati, Inc.//DTD TAPI 0.02//EN"
"http://api.technorati.com/dtd/tapi-002.xml">
<tapi version="1.0">
<document>
<result>
<url>http://pixelated-dreams.com</url>
<weblog>
<name>Pixelated Dreams</name>
<url>http://pixelated-dreams.com</url>
<author>
<username>DShafik</username>
<firstname>Davey</firstname>
<lastname>Shafik</lastname>
</author>
<rssurl>
http://pixelated-dreams.com/feeds/index.rss2
</rssurl>
<atomurl>
http://pixelated-dreams.com/feeds/atom.xml
</atomurl>
<inboundblogs>44</inboundblogs>
<inboundlinks>218</inboundlinks>
<lastupdate>2006-04-26 04:36:36 GMT</lastupdate>
<rank>60635</rank>
</weblog>
<inboundblogs>44</inboundblogs>
<inboundlinks>218</inboundlinks>
</result>
</document>
</tapi>
Here we are accessing the firstname and
lastname properties. Even though these are not
top-level elements, they are automatically returned when accessed by
name.
Multiple items
If multiple items are found when accessing a value by name, an array of SimpleXMLElements will be returned; accessing via method notation will return an array of PHP values.




