Tworzenie Rest Api w CakePHP 3
Pokażę jak w prosty sposób stworzyć restowe api w CakePHP 3. Wykorzystamy do tego plugin cakephp-rest. Aby go zainstalować wydaj polecenie w composerze.
composer require sprintcube/cakephp-rest
Plugin::load('Rest', ['bootstrap' => true]);lub wydaj polecenie za pomocą bake.
bin/cake plugin load -b RestTen plugin prawie wcale nie wymaga konfiguracji. Utwórz kontroler np. ApiController dziedziczący po RestController tak jak w poniższym przykładzie.
namespace App\Controller; use Rest\Controller\RestController; /** * Api Controller * */ class ApiController extends RestController { /** * hello method * * @return Response|void */ public function hello() { $res = [ 'my_data' => [ 'item 1', 'item 2' ] ]; $this->set(compact('res')); } }Ponadto dodaj jeden parametr do konfiguracji trasy isRest jak poniżej.
$routes->connect('/api/hello', ['controller' => 'Api', 'action' => 'hello', 'isRest' => true]);Powyższa funkcja będzie zwracać json:
{ "status": "OK", "result": { "res": { "my_data": [ "item 1", "item 2" ] } } }Klucz status może zawierać OK lub NOK w zależności od Twojego kodu odpowiedzi. Dla wszystkich pomyślnych odpowiedzi kod będzie wynosił 200, a wartością klucza będzie OK. W przypadku błędu lub wyjątku wartość statusu zmieni się na NOK.