例 26.6. 基本的な Zend_Rest_Server の使用法 - クラス
<?php require_once 'Zend/Rest/Server.php'; require_once 'My/Service/Class.php'; $server = new Zend_Rest_Server(); $server->setClass('My_Service_Class'); $server->handle(); ?>
例 26.7. 基本的な Zend_Rest_Server の使用法 - 関数
<?php require_once 'Zend/Rest/Server.php'; /** * Say Hello * * @param string $who * @param string $when * @return string */ function sayHello($who, $when) { return "Hello $who, Good $when"; } $server = new Zend_Rest_Server(); $server->addFunction('sayHello'); $server->handle(); ?>
Zend_Rest_Server
サービスをコールするには、
GET/POST 時の引数 method
にそのメソッド名を指定しなければなりません。
その後に、任意の数の引数を続けることができます。これは、引数の名前
(たとえば "who") を指定するか、あるいは引数の位置を表す数値
(たとえば "arg1") を指定します。
数値インデックス | |
---|---|
数値で指定する引数のインデックスは、1 から始まります。 |
上の例の sayHello
をコールするには、次のようにします。
?method=sayHello&who=Davey&when=Day
あるいは、このようにもできます。
?method=sayHello&arg1=Davey&arg2=Day
値を返す際に独自のステータスを返すには、
キー status
を含む配列を返します。
例 26.8. 独自のステータスを返す
<?php require_once 'Zend/Rest/Server.php'; /** * Say Hello * * @param string $who * @param string $when * @return array */ function sayHello($who, $when) { return array('msg' => "An Error Occurred", 'status' => false); } $server = new Zend_Rest_Server(); $server->addFunction('sayHello'); $server->handle(); ?>
独自の XML を返したい場合は、
DOMDocument
、DOMElement
あるいは
SimpleXMLElement
オブジェクトを返します。
例 26.9. 独自の XML を返す
<?php require_once 'Zend/Rest/Server.php'; /** * Say Hello * * @param string $who * @param string $when * @return SimpleXMLElement */ function sayHello($who, $when) { $xml ='<?xml version="1.0" encoding="ISO-8859-1"?> <mysite> <value>Hey $who! Hope you're having a good $when</value> <code>200</code> </mysite>'; $xml = simplexml_load_string($xml); return $xml; } $server = new Zend_Rest_Server(); $server->addFunction('sayHello'); $server->handle(); ?>
サービスからのレスポンスは、変更なしにクライアントに返されます。