Controller Rest
Описание
Контроллер который класс, реализует RESTful сервис, требует реализованный Crud класс.
Настройки
Нет
Использование
с версии 7.0 появился Controller-Mapper
Для создания управляющего контроллера потребуется приблизительно такой код:
use Application\Model; use Bluz\Controller\Mapper\Rest; /** * @accept HTML * @accept JSON * @acl Read * @acl Create * @acl Update * @acl Delete */ return function () { $rest = new Rest(); $rest->setCrud(Model\Crud::getInstance()); $rest->head('system', 'rest/head', 'Read'); $rest->get('system', 'rest/get', 'Read'); $rest->post('system', 'rest/post', 'Create'); $rest->put('system', 'rest/put', 'Update'); $rest->delete('system', 'rest/delete', 'Delete'); return $rest->run(); };
Описание RESTful
Краткий пересказ поведения RESTful сервиса.
Вызов любого метода может вернуть следующие коды ошибок:
401 Unauthorized - if authorization is required
403 Forbidden - if user don't have permissions
501 Not Implemented - if something not exists
Чтение данных:
GET /module/rest/ -> 200 // return collection or
-> 206 // return part of collection
GET /module/rest/?offset=10&limit=20 -> 206 // return part of collection
GET /module/rest/id -> 200 // return one item or
-> 404 // not found
Так же есть обработчик заголовков:
GET /module/rest/
Range: items=10-20
-> 206 // return part of collection
Создание данных:
POST /module/rest/ -> 201 // item created or
-> 400 // bad request, validation error
POST /module/rest/id -> 501 // error, not used in REST
Редактирование данных:
PATCH /module/rest/
PUT /module/rest/ -> 200 // all items was updated or
-> 207 // multi-status ?
PATCH /module/rest/id
PUT /module/rest/id -> 200 // item was updated or
-> 304 // item not modified or
-> 400 // bad request, validation error or
-> 404 // not found
Удаление данных:
DELETE /module/rest/ -> 204 // all items was deleted or
-> 207 // multi-status ?
DELETE /module/rest/id -> 204 // item was deleted
-> 404 // not found