21.3. Zend_Rest_Server
前のページ | 第21章 Zend_Rest | 次のページ

## 21.3. Zend_Rest_Server

### 21.3.1. 導入

Zend_Rest_Server は、完全に機能する REST サーバを作成するためのものです。

### 21.3.2. REST サーバの使用法

例 21.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();
    ?>

例 21.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();
    ?>

### 21.3.3. Zend_Rest_Server サービスのコール

`Zend_Rest_Server` サービスをコールするには、 GET/POST 時の引数 `method` にそのメソッド名を指定しなければなりません。 その後に、任意の数の引数を続けることができます。これは、引数の名前 (たとえば "who") を指定するか、あるいは引数の位置を表す数値 (たとえば "arg1") を指定します。

| 数値インデックス
数値で指定する引数のインデックスは、1 から始まります。

上の例の `sayHello` をコールするには、次のようにします。

`?method=sayHello&who=Davey&when=Day`

あるいは、このようにもできます。

`?method=sayHello&arg1=Davey&arg2=Day`

### 21.3.4. 独自のステータスの送信

値を返す際に独自のステータスを返すには、 キー `status` を含む配列を返します。

例 21.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();
    ?>

### 21.3.5. 独自の XML レスポンスを返す

独自の XML を返したい場合は、 `DOMDocument`、`DOMElement` あるいは `SimpleXMLElement` オブジェクトを返します。

例 21.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();
    ?>

サービスからのレスポンスは、変更なしにクライアントに返されます。

前のページ | 上に戻る | 次のページ
21.2. Zend_Rest_Client | ホーム | 第22章 Zend_Search