Zend_Rest_Client
ÀÇ »ç¿ë¹ýÀº,
SoapClient
¿ÀºêÁ§Æ® (SOAP À¥ ¼ºñ½º È®Àå ¸ðµâ)
ÀÇ »ç¿ë¹ý°ú ¸Å¿ì Àß ´à¾Ò½À´Ï´Ù.REST ¼ºñ½ºÀÇ ÇÁ·Î½ÃÀú´Â, °£´ÜÇϰÔ
Zend_Rest_Client
ÀÇ ¸Þ¼Òµå·Î¼ ÄÝ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿ì¼±, ±× ¼ºñ½ºÀÇ ÁÖ¼Ò¸¦ Zend_Rest_Client
ÀÇ constructor¡¡ ¡¡ À¸·Î ÁöÁ¤ÇÕ´Ï´Ù.
·Ê 31.1. ±âº»ÀûÀÎ REST ¸®Äù½ºÆ®
<?php
/**
* framework.zend.com ¼¹ö¿¡ Á¢¼ÓÇØ, Àλ縦 ¹Þ½À´Ï´Ù
*/
require_once 'Zend/Rest/Client.php';
$client = new Zend_Rest_Client('http://framework.zend.com/rest');
echo $client->sayHello('Davey', 'Day')->get(); // "Hello Davey, Good Day"
![]() |
ÄÝ ¹æ¹ýÀÇ Â÷ÀÌ |
---|---|
|
Zend_Rest_Client
(À»)¸¦ »ç¿ëÇØ °£ ¸®Äù½ºÆ®´Â, ¸ðµÎ
Zend_Rest_Client_Response
¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
ÀÌ ¿ÀºêÁ§Æ®¿¡´Â ¸¹Àº ÇÁ·ÓÆÛƼ°¡ ÀÖ¾î, °á°ú¿¡ °£´ÜÇÏ°Ô ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Zend_Rest_Server
¿¡ ±Ù°ÅÇÏ´Â ¼ºñ½º¿¡ ¾×¼¼½º ÇßÀ» °æ¿ì¿¡´Â,
Zend_Rest_Client
(Àº)´Â °á°ú¸¦ µû¶ó°¡´Â °³Àΰ¡ÀÇ ÀüÁ¦ Á¶°ÇÀ» »óÁ¤Çϰí ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î ¸®½ºÆù½º ½ºÅ×ÀÌÅͽº (¼º°ø ȤÀº ½ÇÆÐ) (ÀÌ)³ª µ¹¾Æ°¡ °ªÀÇ ÇüÅ µîÀÔ´Ï´Ù.
·Ê 31.2. ¸®½ºÆù½º ½ºÅ×ÀÌÅͽº
<?php
$result = $client->sayHello('Davey', 'Day')->get();
if ($result->isSuccess()) {
echo $result; // "Hello Davey, Good Day"
}
À§ÀÇ ¿¹·Î, ¸®Äù½ºÆ®ÀÇ °á°ú¸¦ ¿ÀºêÁ§Æ®·Î¼ Ãë±ÞÇØ,
isSuccess()
(À»)¸¦ ÄÝ Çϰí ÀÖ´Â °ÍÀ» º¸½Ç ¼ö ÀÖ°ÚÁö¿ä.
¶Ç,__toString()
(À»)¸¦ ¼Æ÷Æ®Çϰí Àֱ⠶§¹®¿¡,
´ÜÁö echo
(À¸)·Î ÇÏ´Â °Í¸¸À¸·Î ¿ÀºêÁ§Æ®ÀÇ °á°ú¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
Zend_Rest_Client_Response
(Àº)´Â, ÀÓÀÇÀÇ ½ºÄ®¶óÄ¡¸¦
echo ÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.º¹ÀâÇÑ Çü½ÄÀÇ °æ¿ì´Â,
¹è¿ ±â¹ý ȤÀº ¿ÀºêÁ§Æ® ±â¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
±×·¯³ª,Zend_Rest_Server
(À»)¸¦ »ç¿ëÇϰí ÀÖÁö ¾Ê´Â ¼ºñ½º¿¡ ¹®ÀÇÇÏ°í ½ÍÀº °Íµµ ÀÖ°ÚÁö¿ä.ÀÌ·¯ÇÑ °æ¿ì,
Zend_Rest_Client_Response
¿ÀºêÁ§Æ®´Â
SimpleXMLElement
(¿Í)°ú °°Àº ÇൿÀ» ÇÕ´Ï´Ù.
±×·¯³ª, º¸´Ù °£´ÜÇÏ°Ô Ã³¸®Çϱâ À§ÇØ(¶§¹®¿¡), ÇÁ·ÓÆÛƼ°¡ ·çÆ® ¿ä¼ÒÀÇ Á÷ÇÏ¿¡ ¾ø´Â °æ¿ì¿¡´Â
ÀÚµ¿ÀûÀ¸·Î XPath ±×¸®°í XML (À»)¸¦ ãµµ·Ï(µíÀÌ) Çϰí ÀÖ½À´Ï´Ù.°Ô´Ù°¡
ÇÁ·ÓÆÛƼ¿¡ ´ëÇØ¼ ¸Þ¼Òµå·Î¼ ¾×¼¼½º Çϸé,
PHP ÀÇ °ª ȤÀº °ªÀÇ ¹è¿·Î¼ ±× ¿ÀºêÁ§Æ®¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
·Ê 31.3. Technorati ÀÇ Rest ¼ºñ½ºÀÇ »ç¿ë
<?php
require_once 'Zend/Rest/Client.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();
·Ê 31.4. Technorati (À¸)·ÎºÎÅÍÀÇ ¸®½ºÆù½ºÀÇ ¿¹
<?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>
¿©±â¼,firstname
(ÀÌ)³ª
lastname
±×·¸´Ù°í ÇÏ´Â ÇÁ·ÓÆÛƼ¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù.
À̰͵éÀº Åé ·¹º§ ¿ä¼Ò°¡ ¾Æ´Õ´Ï´Ù¸¸,
À̸§À» ÁöÁ¤ÇÏ´Â °Í¸¸À¸·Î ÀÚµ¿ÀûÀ¸·Î ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
![]() |
º¹¼öÀÇ ¿ä¼Ò |
---|---|
À̸§À¸·Î ¾×¼¼½º Çϰí ÀÖÀ» ¶§ ¸¸¾à º¹¼öÀÇ Ç׸ñÀÌ ¹ß°ßµÇ¸é, SimpleXMLElements ÀÇ ¹è¿À» µ¹·ÁÁÝ´Ï´Ù.¸Þ¼Òµå ±â¹ýÀ¸·Î ¾×¼¼½º Çϸé, PHP ÀÇ °ªÀÇ ¹è¿À» µ¹·ÁÁÝ´Ï´Ù. |
Zend_Rest_Server
º£À̽ºÀÇ ¼ºñ½º¿¡ ¸®Äù½ºÆ®¸¦ º¸³»´Â °ÍÀº ¾Æ´Ñ °æ¿ì´Â,
¸®Äù½ºÆ® ½Ã¿¡ º¹¼öÀÇ Àμö¸¦ ÁöÁ¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
À̰ÍÀ» ½Ç½ÃÇÏ·Á¸é , Àμö¸í°ú °°Àº À̸§ÀÇ ¸Þ¼Òµå¸¦ ÄÝ ÇØ,
±× ÃÖÃÊÀÇ (±×¸®°í À¯ÀÏÇÑ) Àμö·Î¼ °ªÀ» ÁöÁ¤ÇÕ´Ï´Ù.
ÀÌ·¯ÇÑ ¸Þ¼Òµå ÄÝÀº ±× ¿ÀºêÁ§Æ® ÀÚ½ÅÀ» µ¹·ÁÁֹǷÎ,
¸Þ¼Òµå¸¦ ¿¬°áÇÑ´Ù "È帣´Â" Çü½Ä¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÃÖÃÊÀÇ ÄÝ (ȤÀº º¹¼öÀÇ Àμö¸¦ ÁöÁ¤ÇßÀ» °æ¿ìÀÇ ÃÖÃÊÀÇ Àμö)
(Àº)´Â Ç×»ó,Zend_Rest_Server
¼ºñ½º¸¦ ÄÝ ÇÒ ¶§ÀÇ ¸Þ¼Òµå·Î °£ÁÖÇØÁý´Ï´Ù.
·Ê 31.5. ¸®Äù½ºÆ®ÀÇ ÀμöÀÇ ¼³Á¤
<?php
$client = new Zend_Rest_Client('http://example.org/rest');
$client->arg('value1');
$client->arg2('value2');
$client->get();
// ȤÀº
$client->arg('value1')->arg2('value2')->get();
À§ÀÇ ¿¹ÀÇ 2Åë¹æ¹ýÀº ¸ðµÎ, ´ÙÀ½°ú °°Àº get Àμö°¡ µË´Ï´Ù.
?method=arg&arg1=value1&arg=value1&arg2=value2
ÃÖÃÊÀÇ $client->arg('value1');
ÀÇ ÄÝÀÌ
method=arg&arg1=value1
¹× arg=value1
ÀÇ 2ÅëÀÇ °á°ú°¡ µÇ´Â °Í¿¡ ±âºÐ³ª¹«Áö¿ä.À̰Ϳ¡ ÀÇÇØ¼,
Zend_Rest_Server
ÇÏÁö¸¸ ¸®Äù½ºÆ®¸¦ ÀûÀýÈ÷ ÀÌÇØÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
±× ¼ºñ½º¸¦ »ç¿ëÇÏ´Â ¿¡ ÇØ´çÇÏ´Â ÀüÁ¦ Áö½ÄÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê°Ô µË´Ï´Ù.
![]() |
Zend_Rest_Client ÀÇ ¾ö°Ý¼º |
---|---|
¹Þ´Â Àμö¿¡ ´ëÇØ ¾ö°ÝÇÑ REST ¼ºñ½º¿¡¼´Â,
|