1
userdoc/json_api – MultiMag
wiki:userdoc/json_api

Соглашения при работе с json

Внимание! Переход к поддержке данных соглашений находится лишь ан начальной стадии реализации, и применяется лишь в некоторых местах multimag. Тем не менее, в новом коде их необходимо придерживаться - они лягут в основу JSON API. Так же следование этим соглашением упростит поддержку и развитие системы. Рекомендуется так же переписывать код с учётом этих соглашений при рефракторинге.

В [квадратных скобках] указаны необязательные поля.

Запросы на сервер

В стадии разработки

Запросы, изменяющие данные на сервере, допустимы только методом POST!

  • object: Строковой идентификатор запрошенной функции.
  • action: Действие над запрошенным объектом, например get,create,update,delete.
  • [data]: Строка - JSON - кодированные дополнительные параметры запроса.

Ответы от сервера

Все корректные ответы должны генерироваться с кодом 200. Для случая отсутствия привилегий ответ должен быть с кодом 403, для случая отсутствия объекта ответ должен быть с кодом 404.

  • object: Строковой идентификатор запрошенной функции. Должен быть уникальным в пределах ресурса URI.
  • response: Строковой идентификатор успешности исполнения запроса.
    • success При успешном выполнении
    • error При ошибке в процессе выполнения

Поля при ответе об успехе

  • [content]: Содержит произвольные данные от сервера.

Поля при ответе об ошибке

  • errormessage: Поле с текстом сообщения об ошибке.
  • [errorcode]: Опциональное поле с кодом ошибки.

Обращения к /api.php

Аутентификация

На данный момент поддерживается только на основе сессий.

object -> agent

Работа с агентами

action -> get

Получить данные агента. Контролируется соответствующими привилегиями.

  • Параметры [data]:
    • id: id запрашиваемого агента.
  • Ответ [content]:
    • id: ID запрашиваемого агента
    • data: Данные запрашиваемого агента

action -> create

Создать нового агента. Контролируется соответствующими привилегиями.

  • Параметры [data]:
    • agent: Данные создаваемого агента.
      • name: Краткое имя агента
        • fullname: Полное имя агента
        • type: Тип агента: fl/ul/nr
        • group_id: Группа, в которую будет добавлен агент.
        • сontacts: Контактные данные
          • context: Класс: home/work/mobile
          • type: Вид: phone/email/jid/icq/skype/mra
          • context: Класс: home/work/mobile
          • value: Значение
          • person_name: Контактное лицо
          • person_post: Должность контактного лица
  • Ответ [content]:
    • id: ID созданного агента
    • data: Данные созданного агента
Last modified 22 months ago Last modified on May 4, 2016, 8:54:25 PM