API REST v2.0

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (14)

просмотр истории страницы
Старый API после некоторых доработок потерял совместимость, поэтому мы решили выпустить вторую версию.

{toc:maxLevel=3}

Рекомендуем использовать эту версию для написания запросов.
h2. Описание формата

h3. Формат дат для параметров запросов:

Дата и время:
{code}
%Y-%m-%d %H:%M:%S
{code}

Только дата:
{code}
%Y-%m-%d
{code}
Отличия от старой версии:
* Новый адрес для запросов: http://<ip>:8082/rest_api/v2/
* Вместо передачи параметров в GET, перешли на POST
* Убрали из вывода результаты промежуточных вызовов (method1, method2,..), оставили только result
* Соответственно, немного поменялся схема вывода (см. соответствующий раздел)
* Модель указывается в url напрямую, например: http://<ip>:8082/rest_api/v2/Abonents/
* Атрибут запроса fields теперь не нужно маркировать номером метода. Он будет применяться к последнему объекту (возвращенному последним методом)
* Документацию (пока что только перечень доступных полей для запроса) можно посмотреть, пройдя браузером по ссылке http://<ip>:8082/rest_api/v2/
* Теперь можно в fields запрашивать вывод объектов по ссылкам (fk, m2m), обратным ссылкам и выводить property объектов, а также выводить конкретные поля этих объектов. Глубина запроса не ограничена, разделитель - двойное подчеркивание. \*Внимание\! Django не объединяет запрос по обратной ссылке в один, поэтому он может выполняться заметно дольше для большого кол-ва объектов (например, если запросить все учетные записи у всех абонентов - будет 1 запрос для абонентов и по запросу на каждого абонента для получения его учетных записей)

h2. Описание формата
h3. Формат ответа

*Формат ответа:

{code}
{"call": "/rest_api/v2/<model_name>/", "result": [<объект>, ...]}
тип поля result будет меняться в соответствии с данными (список для перечня объектов (objects.filter), словарь для 1 объекта (objects.get), значение метода при вызове метода и.т.д).

*Формат ошибки:
h3. Формат ошибки

{code}
если в результате есть не пустое поле error, то значит запрос завершился неуспешно

*Формат объекта:
h3. Формат объекта

{code}