1

我正在尝试在没有视图的情况下创建 Rest API,并计划在 angular 2 应用程序中使用这些 api。有什么想法吗?

4

3 回答 3

1

蛋糕使这非常容易。我学到了一些在没有视图的情况下构建的东西。

设置 _serialize 变量

$data = ['cheeses' => ['gouda', 'pepper jack', 'cheddar']];
$this->set('responseData', $data);
$this->set('_serialize', 'responseData');

抛出错误请求异常和其他网络相关异常

Cake 将为您呈现漂亮的 json 视图。

发出请求时将您的接受标头设置为 application/json

您可以将蛋糕前缀用于 api 版本

查看您的 api的无状态身份验证

于 2017-10-01T01:40:43.827 回答
0

在您的AppController.php中,使用这些参数,您的所有控制器都将在 json 中呈现

public function beforeRender(Event $event)
{
     $this->RequestHandler->renderAs($this, 'json');
     $this->response->type('application/json');
     $this->set('_serialize', true);
}
于 2017-12-30T08:55:18.807 回答
0

CakePHP 将轻松呈现 json。

在您的控制器中,看起来像一些东西。

protected   $responseBody   =   [];

public function beforeRender(Event $event){

    foreach($this->responseBody as $responseKey=>$response){

       $this->set($responseKey, $response);
    }
    $this->set('_serialize', array_keys($this->responseBody));
}

public function initialize()
{
    parent::initialize();

    $this->RequestHandler->renderAs($this, 'json');
}

public function index(){

    $this->request->allowMethod(['get']);  // Method like post,get..

    $this->responseBody["statusCode"]       =   200;

    $this->responseBody["statusDescription"]        =   ''; //You send any text in json.

    $this->responseBody["data"]  =  []; // All data that you can send.

}

更多信息,您可以查看 CakePHP Cookbook REST API 点击这里

于 2018-01-03T09:35:19.600 回答