CakePHP:区分常规的http和REST调用

时间:2013-12-26 12:15:32

标签: rest cakephp methods view call

我希望相同的Controller例程能够同时提供基于Web的常规页面加载以及REST调用。我在routes.php中有REST处理设置:

// Setup REST Handling
Router::mapResources( '<ControllerName>' );
Router::parseExtensions();

我们以 add()方法为例 - 我如何在此方法中区分如何进行调用?

详细说明问题:

public function add() {
    $status = array();
    if( $this->request->is( 'post' ) ) {
            // Read POST body
            $entityBody = file_get_contents( 'php://input' );
    }
}

正如您在上面的代码中所看到的,我正在检测POST请求并将相应地处理请求。我需要知道的是,帖子数据是来自网络表单的REST调用。如果数据来自网络表单,则它将位于request-&gt;数据数组中;而对于REST调用,它将采用XML格式。

我将相应地处理数据并提出适当的回应。

感谢。

1 个答案:

答案 0 :(得分:1)

使用CakeRequest对象,请参阅the documentation,与post相同。

$this->request->is('put');
  • 是('get')检查当前请求是否为GET。
  • 是('put')检查当前请求是否为PUT。
  • is('post')检查当前请求是否为POST。
  • is('delete')检查当前请求是否为DELETE。