Files
Dmitry 98c27fec85 Bulk rename/move files to '8' directories
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.
2026-06-09 22:25:32 +03:00

2.3 KiB

LR3: REST API на Flask

Реализация находится в папке LR3:

  • LR3/irfm_lr3.py - Flask REST API для таблицы calls из data/calls.db
  • LR3/cli_client.py - CLI-клиент для ручного взаимодействия с API

Возможности API

  1. Получение списка объектов с пагинацией: GET /api/calls?page=1&per_page=20
  2. Получение одного объекта по ключу (ID = rowid): GET /api/calls/<id>
  3. Добавление объекта: POST /api/calls
  4. Редактирование объекта: PUT /api/calls/<id>
  5. Удаление объекта: DELETE /api/calls/<id>
  6. Дополнительный метод (общее число обращений за час): 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