- Создал(а) Неизвестный пользователь (n.nehaenko), редактировал(а) Антон Бутвин вчера в 5:31 PM
Скрипт предназначен для работы только на серверах.
Методы 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_old/login
{ "username": "admin", "password": "1234" }
{ "success": 1, "sid": "uWDoki5j" }
Работа со списками
Получение списков
emblists(server_guid) - получение информации о списках с конкретного сервера.
- server_guid (str, optional) - если не указан, работаем с локальным сервером.
GET https://{ip:port}/s/autotrassir_api_old/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_old/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_old/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_old/emblists?server_guid=A7Q091V2&sid=uWDoki5j
{ "name": "New list", "reaction": 0 }
Ответ:
{"message": "Emblist: New list was created"}
{"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_old/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_old/embrecords?server_guid=A7Q091V2&sid=uWDoki5j
{ "list_id": 17, "plate": "77777" }
Ответ:
{"message": "Record in list_id: 17 was created"}
{"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_old/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_old/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_old/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"}