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.
