response($data = array(), $http_code = 200)
このメソッドは、フォーマットと出力ロジックを介して応答データを送信するために使用されます。 必要に応じて、2 番目のパラメータとしてステータスコードを設定することができます。
Rest コントローラは Base コントローラを継承したもので、RESTful のサポートが組み込まれています。 これは、API を簡単に構築をすることが出来ます。
Please note: もし、REST コントローラの中で before() や router メソッドを 使うなら、うまく動作させるために親クラスの parent::before() (または router) を呼び出さなければ いけません。
すべてのコントローラと同様に、fuel/app/classes/controllerディレクトリ内にクラスを作成します。 それらは Controller_Rest クラスを継承し、"Controller_" というプレフィックスを付けます。 以下は "test" コントローラの例です:
class Controller_Test extends Controller_Rest
{
public function get_list()
{
return $this->response(array(
'foo' => Input::get('foo'),
'baz' => array(
1, 50, 219
),
'empty' => null
));
}
}
このコントローラのメソッド "list" は、次の URL によって呼び出されます:
http://localhost/test/list.json?foo=bar
通常の "action_" プレフィックスの代わりに Rest コントローラは HTTP メソッドをプレフィックスに使います。 対応する HTTP メソッドのプレフィックスのメソッドがない場合は、"action_" プレフィックスにフォールバックします。 Rest コントローラがサポートする HTTP メソッドは次の通りです:
When using XML output you can set the XML basenode by setting the $xml_basenode
param.
class Controller_Test extends Controller_Rest
{
// Set it for the whole controller
protected $xml_basenode = 'my_basenode';
// Or inside your controller function
public function get_items()
{
$this->xml_basenode = 'other_basenode';
return $this->response(array(
'foo' => Input::get('foo'),
'baz' => array(
1, 50, 219
),
'empty' => null
));
}
}
You can also set the XML basenode app-globally by changing the rest.xml_basenode
config setting.
HTTP メソッド | 説明 |
---|---|
GET | 既存のリソースに関する情報を取得するために使われます。ブラウザに URL を入力しアクセスしたり、リンクをクリックしたときに使われます。 REST リソース (ユーザのような) から情報を取得するために最適です。 |
POST | 既存の情報リソースを更新するために使われます。ブラウザはインターネット上の多くの種類のフォームに投稿するために このメソッドを使用します。しかしながら、いくつかのフォームは、 フィールドデータを含むクエリ文字列を送信する GET を使います。 |
PUT | あまり用いられず、ほとんどのブラウザでサポートされていませんが、PUT は新しいリソースを作成するために使われます。 |
DELETE | 同じく多くのブラウザで使われませんが、リソースを削除するために使われます。 |
{
"foo":"bar",
"baz":[1,50,219],
"empty":null
}
ファイル拡張子が URL で定義されているので、これは JSON として出力されます。デフォルトでは、XML フォーマット出力されるか、 fuel/core/config/rest.php に設定されているフォーマットで出力されます。
返される結果のフォーマットを決定するために、REST コントローラは次のアルゴリズムを用います:
このメソッドは、フォーマットと出力ロジックを介して応答データを送信するために使用されます。 必要に応じて、2 番目のパラメータとしてステータスコードを設定することができます。