-
Notifications
You must be signed in to change notification settings - Fork 39
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 сервиса.
Вызов любого метода может вернуть следующие коды ошибок:
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
Acl
Application
Auth
Cache
Common
— Exception
— Collection
— Container
— Helper
— Options
— Singleton
Config
Controller
— Data
— Mapper
—— Crud
—— Rest
— Reflection
Crud
— Crud Table
Db
— Row
— Table
— Relations
— Query
Debug
EventManager
Grid
Http
Layout
Logger
Mailer
Messages
Nil
Proxy
Registry
Request
Response
Router
Session
Translator
Validator
View