Page tree

Скрипт предназначен для работы только на серверах.


Методы HTTP используются следующим образом:
- GET: Чтение данных.
- POST: Создание или изменение данных.

Работу API можно разделить на 2 вида запросов :
1. Работа со списками.
2. Работа с записями в списках.

Условные обозначения:
emblist - структура пользовательского списка. Значения:
- name (str) - название списка.
- disabled (int) - отключен ли список (все записи в отключенных списках считаются отключёнными).
- reaction (int) - вид списка.
0 - чёрный список.
1 - информационный список.
2 - белый список.

embrecord - структура записи номера в списке. Значения:
- plate (str) - номер автомобиля. Один и тот же номер может принадлежать разным спискам, это будут две разные записи. Но в одном списке не может быть две записи с одним и тем же номером.
- comment (str) - комментарий.
- time_threshold (int) - если запись не истекает со временем, здесь 0 (по умолчанию), если истекает - unix timestamp окончания записи.
- passes_initial (int) - если запись не истекает по количеству проездов, здесь -1 (по умолчанию), если истекает - количество проездов, которое было у записи вначале.
- passes_left (int) - количество оставшихся проездов в записи.
- disabled (int) - отключен ли список (все записи в отключенных списках считаются отключёнными). По умолчанию 0.
- arbitrary_data (str) - Пустая строка или JSON dict с двойными кавычками вокруг текстовых данных (т.е. строка), не длиннее 65к символов. Если нужно хранить какую-либо дополнительную информацию для работы со скриптами. В GUI этот параметр не посмотреть.

Для начала работы нужно получить sid через авторизацию. В дальнейшем, sid указывается в запросе.
Для того чтобы просматривать или редактировать списки или записи, у пользователя должны быть соответствующие права на сервере.

Строка запроса
POST https://{ip:port}/s/autotrassir_api/login
Тело запроса
{
    "username": "admin",
	"password": "1234"
}
Ответ
{
	"success": 1,
	"sid": "uWDoki5j"
}

Работа со списками

Получение списков

emblists(server_guid) - получение информации о списках с конкретного сервера.
- server_guid (str, optional) - если не указан, работаем с локальным сервером.

Строка запроса
GET https://{ip:port}/s/autotrassir_api/emblists?server_guid=A7Q091V2&sid=uWDoki5j
Ответ
[
    {
		'disabled': 0,
		'reaction': 2,
		'name': 'list1',
		'list_id': 16
	},
	{
		'disabled': 0,
		'reaction': 1,
		'name': 'list2',
		'list_id': 17
	}
]

Удаление списка

delete_emblist (server_guid, list_id) - удаление с сервера списка с заданным list_id.
- server_guid (str, optional) - если не указан работаем с локальным сервером.
- list_id (int) - идентификатор списка для удаления.

Строка запроса
POST https://{ip:port}/s/autotrassir_api/emblists?server_guid=A7Q091V2&sid=uWDoki5j
Тело запроса
{
	"list_id" : 17,
	"delete": 1
}

Ответ:

Если команда была отправлена успешно
{"message": "emblist_id: 17 was deleted"}
Если список не был найден
{"message": "emblist_id: 17 not found, cannot delete", "error_code": "LIST_NOT_FOUND"}

Обновление списка

update_emblist (emblist, server_guid) - обновление списка.
- list_id (int): идентификатор списка.
- server_guid (str, optional) - если не указан работаем с локальным сервером.

Новые данные для обновления списка (emblist):
- name (str) - название списка
- disabled (int, optional) - отключен ли список (все записи в отключенных списках считаются отключёнными)
- reaction (int, optional) - вид списка. 

- arbitrary_data (str, optional) - Пустая строка или JSON dict с двойными кавычками вокруг текстовых данных (т.е. строка), не длиннее 65к символов.

Строка запроса
POST https://{ip:port}/s/autotrassir_api/emblists?server_guid=A7Q091V2&sid=uWDoki5j
Тело запроса
{
	"list_id": 17,
	"name": "update_new_list",
	"reaction": 1
}

Ответ:

Если команда была отправлена успешно
{"message": "emblist_id: 17 was updated"}
Если список не был найден
{"message": "list_id: 17 not found, cannot update, "error_code": "LIST_NOT_FOUND"}

Добавление списка

append_emblist(name, reaction, server_guid) - добавление нового списка.
- name (str): имя списка.
- reaction (int): реакция.
- server_guid (str, optional): если не указан, работаем с локальным сервером.

Строка запроса
POST https://{ip:port}/s/autotrassir_api/emblists?server_guid=A7Q091V2&sid=uWDoki5j
Тело запроса
{
	"name": "New list",
	"reaction": 0
}

Ответ:

Если команда была отправлена успешно
{"message": "Emblist: New list was created"}
Если реакция некорректна, например "reaction": 5
{"message": "Wrong reaction: 5", "error_code": "INVALID_REACTION"}

Работа с записями в списках

Получение записей в списках

lpr_get_user_records(server_guid, list_id) - получение записей в списках.
- server_guid (str, optional): если не указан работаем с локальным сервером.
- list_id (int, optional): если не указан, показываем все записи.

Строка запроса
GET https://{ip:port}/s/autotrassir_api/embrecords?server_guid=A7Q091V2&sid=uWDoki5j
Ответ
{
	'comment': '',
	'plate': 'p268ea199',
	'disabled': 0,
	'list_id': 16,
}

Добавление записи в список

append_item(list_id, embrecord, server_guid) - добавление записи в список.
- list_id (int): идентификатор списка.
- server_guid (str, optional): если не указан работаем с локальным сервером.

Новые данные для добавления записи (embrecord):
- plate (str) - номер автомобиля
- comment (str, optional) - комментарий
- time_threshold (int, optional) - если запись истекает со временем - unix timestamp окончания записи
- passes_initial (int, optional) - если запись истекает по количеству проездов - количество проездов, которое было у записи вначале
- passes_left (int, optional) - количество оставшихся проездов в записи
- disabled (int, optional) - отключен ли список (все записи в отключенных списках считаются отключёнными). По умолчанию 0.
- arbitrary_data (str, optional) - Пустая строка или JSON dict с двойными кавычками вокруг текстовых данных (т.е. строка), не длиннее 65к символов.

Строка запроса
POST https://{ip:port}/s/autotrassir_api/embrecords?server_guid=A7Q091V2&sid=uWDoki5j
Тело запроса
{
	"list_id": 17,
	"plate": "77777"
}

Ответ:

Если команда была отправлена успешно
{"message": "Record in list_id: 17 was created"}
Если plate задан некорректно, например 111 (int)
{"message": "For append requires plate, not 111", "error_code": "INVALID_PLATE"}

Удаление записи из списка

delete_item(list_id, plate, server_guid) - удаление номера из списка.
- list_id (int): идентификатор списка.
- plate (str): номер АТ.
- server_guid (str, optional): если не указан работаем с локальным сервером.

Строка запроса
POST https://{ip:port}/s/autotrassir_api/embrecords?server_guid=A7Q091V2&sid=uWDoki5j
Тело запроса
{
	"list_id": 17,
	"plate" : "7777777",
	"delete": 1
}

Ответ:

Если команда была отправлена успешно
{"message": "Plate: "7777777" was deleted"}
Если запись с номером не найдена
{"message": "Embrecord with plate: "7777777" not found", "error_code": "RECORD_NOT_FOUND"}

Обновление записи в списке

update_item(list_id, old_plate, embrecord, server_guid) - обновляет запись в списке.
- list_id (int): идентификатор списка.
- old_plate(str): старый АТ номер, если номер менять не требуется, указываем только его.
- server_guid(str, optional): если не указан, работаем с локальным сервером.

Новые данные для обновления записи (embrecord):
- plate(str, optional) - номер автомобиля
- comment (str, optional) - комментарий
- time_threshold(int, optional) - если запись истекает со временем - unix timestamp окончания записи
- passes_initial(int, optional) - если запись истекает по количеству проездов - количество проездов, которое было у записи вначале
- passes_left(int, optional) - количество оставшихся проездов в записи
- disabled(int, optional) - отключен ли список (все записи в отключенных списках считаются отключёнными). По умолчанию 0.
- arbitrary_data(str, optional) - Пустая строка или JSON dict с двойными кавычками вокруг текстовых данных (т.е. строка), не длиннее 65к символов.

Строка запроса
POST https://{ip:port}/s/autotrassir_api/embrecords?server_guid=A7Q091V2&sid=uWDoki5j
Тело запроса
{
	"list_id": 17,
	"plate": "66666",
	"comment": "newcomment"
	"old_plate" : "7777777"
}

Ответ:

Если команда была отправлена успешно
{"message": "Plate: "7777777" was updated"}
Если запись с номером не найдена
{"message": "record with plate: "7777777" not found", "error_code": "RECORD_NOT_FOUND"}

Обновление или создание записи в списке

upsert_item(list_id, embrecord, override, server_guid) - если override=1 и запись существует в базе данных, то обновляет заданную в аргументе embrecord запись, если записи нет то создает новую. Если override=0 и запись существует ничего не делает, если ее нет создает новую.
- list_id (int) : идентификатор списка.
- override(int) - обновление записи.
- server_guid (str, optional): если не указан работаем с локальным сервером.

Новые данные для обновления записи (embrecord):
- plate(str, optional) - номер автомобиля
- comment (str, optional) - комментарий
- time_threshold(int, optional) - если запись истекает со временем - unix timestamp окончания записи
- passes_initial(int, optional) - если запись истекает по количеству проездов - количество проездов, которое было у записи вначале
- passes_left(int, optional) - количество оставшихся проездов в записи
- disabled(int, optional) - отключен ли список (все записи в отключенных списках считаются отключёнными). По умолчанию 0.
- arbitrary_data(str, optional) - Пустая строка или JSON dict с двойными кавычками вокруг текстовых данных (т.е. строка), не длиннее 65к символов.

Строка запроса
POST https://{ip:port}/s/autotrassir_api/embrecords?server_guid=A7Q091V2&sid=uWDoki5j
Тело запроса
{
	"list_id": 17,
	"override": 1,
	"plate": "66666"
}

Ответ:

Если команда была отправлена успешно
{"message": "Upsert with list_id: 17 was success"}
Если запись с номером не найдена
{"message": "Plate for upsert not found: None", "error_code": "PLATE_NOT_FOUND"}

Скачать


  • No labels