我正在尝试在没有视图的情况下创建 Rest API,并计划在 angular 2 应用程序中使用这些 api。有什么想法吗?
问问题
1451 次
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 回答