config/module.config.php
return [
'router' => [
'routers' => [
'api-login' => [ // REST
'type' => 'Literal',
'options' => [
'route' => '/api/login',
'defaults' => [
'controller' => 'YourModule\Controller\Login'
],
],
],
'login' => [
'type' => 'Literal',
'options' => [
'route' => '/login',
'defaults' => [
'controller' => 'YourModule\Controller\Login'
'action' => 'login',
],
],
],
],
],
'view_manager' => [
'strategies' => [
'ViewJsonStrategy',
],
],
'controllers' => [
'invokables' => [
'YourModule\Controller\Login' => 'YourModule\Controller\LoginController',
],
],
];
src/YourModule/Controller/LoginController.php
class LoginController extends AbstractRestfulController {
public function create($data) {
// POST данные пришедшие по REST
return new JsonModel(['status' => 'error', 'message' => 'Логин и/или пароль указан не верно.']);
}
public function getList() {
// GET данные без id
return new JsonModel(['item1', 'item2', 'item3']);
}
public function loginAction() {
// обычный Action
return new ViewModel();
}
}
следует обратить внимание на то, что:
- Контроллер унаследован от AbstractRestfulController
- В конфиге указана стратегия ViewJsonStrategy