Создание Rest API без представлений с помощью cakePHP 3.5

Я пытаюсь создать Rest API без просмотра и планирую использовать эти API в приложении angular 2. имеет какое-нибудь представление об этом?


person Kumar    schedule 16.09.2017    source источник
comment
Начать читать инструкцию? book.cakephp.org/3.0/en/development/rest.html   -  person floriank    schedule 16.09.2017


Ответы (3)


С тортом это невероятно легко. Несколько вещей, которые я научился строить без представлений.

Установите переменную _serialize

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

Выдавать исключения из-за неверных запросов и другие исключения, связанные с сетью

Cake будет отображать для вас красивые представления json.

Установите заголовок accept при выдаче и запросе ajax как application/json

Вы можете использовать префиксы торта для версий API

Посмотрите Аутентификация без сохранения состояния для вашего API

person styks    schedule 01.10.2017

В вашем AppController.php с этими параметрами все ваши контроллеры будут рендериться в json

public function beforeRender(Event $event)
{
     $this->RequestHandler->renderAs($this, 'json');
     $this->response->type('application/json');
     $this->set('_serialize', true);
}
person eclaude    schedule 30.12.2017

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.

}

Для получения дополнительной информации вы можете увидеть REST API CakePHP Cookbook, нажав здесь

person Boni    schedule 03.01.2018