Skip to content
Anton edited this page Jun 3, 2016 · 9 revisions

Описание

Контроллер который класс, реализует 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
Clone this wiki locally