98c27fec85
Perform a bulk rename/move of many files and folders: paths previously prefixed with '01', '02', '03', '04', etc. were relocated to equivalent paths prefixed with '8'. Changes are path-only (R100 renames) and do not modify file contents; this reorganizes the repository structure.
LR3: REST API на Flask
Реализация находится в папке LR3:
LR3/irfm_lr3.py- Flask REST API для таблицыcallsизdata/calls.dbLR3/cli_client.py- CLI-клиент для ручного взаимодействия с API
Возможности API
- Получение списка объектов с пагинацией:
GET /api/calls?page=1&per_page=20 - Получение одного объекта по ключу (ID =
rowid):GET /api/calls/<id> - Добавление объекта:
POST /api/calls - Редактирование объекта:
PUT /api/calls/<id> - Удаление объекта:
DELETE /api/calls/<id> - Дополнительный метод (общее число обращений за час):
GET /api/stats/hour/<hour>
Формат ответа:
- JSON (по умолчанию)
- WSDL/XML: передайте
?format=wsdl(илиAccept: application/wsdl+xml) - Отдельное описание WSDL:
GET /api/wsdl
Запуск
uv sync
uv run python LR3/irfm_lr3.py
Сервер поднимется на http://127.0.0.1:5000.
Запуск CLI
В отдельном терминале (при запущенном сервере):
uv run python LR3/cli_client.py
CLI позволяет вручную выбрать метод API, указать входные данные и формат ответа.
Docker (для передачи коллеге)
Собрать образ из корня проекта:
docker build -t irfm-lr3-api .
Запустить контейнер:
docker run --rm -p 5000:5000 irfm-lr3-api
API будет доступен по адресу http://localhost:5000.
Проверка:
curl http://localhost:5000/api/calls?page=1&per_page=3
Важно: база data/calls.db копируется внутрь образа на этапе сборки. Если нужно сохранять изменения между перезапусками контейнера, можно примонтировать внешний файл базы:
docker run --rm -p 5000:5000 \
-v $(pwd)/data/calls.db:/app/data/calls.db \
irfm-lr3-api