Intermediate

Поддержка REST

Webix полностью поддерживает протокол REST для загрузки и сохранения данных.

Инициализация

Чтобы включить режим REST, используйте префикс rest перед загружающими и сохраняющими скриптами. Это позволит подключить необходимые объекты proxy.

{
    view:"datatable",
    // конфиг
    save: "rest->server/datatable_rest.php",
    url: "rest->server/datatable.php"
}

Related sample:  Datatable: REST-ful Saving

Вы также можете инициализировать объект proxy и указать его в качестве значения для свойств url и save. Функция webix.proxy() получает префикс rest и путь к вашему серверному сохраняющему скрипту.

var rest = webix.proxy("rest", "server/datatable_rest.php");

Шаблоны REST загрузки и сохранения

  • При загрузке выполняется GET-запрос и возвращаются данные в любом из поддерживаемых форматах;
  • При редактировании или вызове метода update() формируется PUT-запрос, а ID элемента и другие параметры передаются в скрипт. ID элемента отображается в адресной строке;
  • При добавлении элемента в компонент формируется POST-запрос, а ID элемента другие параметры передаются в скрипт. ID элемента отображается в адресной строке;
  • При удалении элемента из компонента формируется DELETE- запрос, а ID элемента другие параметры передаются в скрипт.

Сохраняющий скрипт имеет дело с операциями добавления, редактирования и удаления и должен содержать код на основе каждого из запросов.

Ответ с сервера

Ответ с сервера настраивается таким же образом, как любой пользовательский скрипт.

Обратите внимание, что вы можете настроить Webix DataProcessor для обновления клиентских данных на основе ответа с сервера:

view:"datatable",
save: {
    url:"rest->server/datatable_rest.php",
    autoupdate:true
}

Краткий ответ в JSON-формате:

{"status":"ok"}
// или
{"tid":121}

Более сложный пример:

{"action":"update", "id":15, "newid":15}

Если нужно вернуть ошибку, ответ может выглядеть следующим образом:

{"action":"error", ...}

Типы ответов

Существует несколько типов ответов по умолчанию: update, insert, delete, invalid и error.

Вы можете передать любые данные в JSON-ответ. На клиенте вы можете получить ответ с помощью события onAfterUpdate

Наверх