Соглашения при работе с 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: Должность контактного лица
- name: Краткое имя агента
- agent: Данные создаваемого агента.
- Ответ [content]:
- id: ID созданного агента
- data: Данные созданного агента