REST API сервер
REST API сервер Data.Rentgen предоставляет простой HTTP API для доступа к сущностям, хранящимся в базе данных. Реализован с использованием FastAPI.
Установка и запуск
С Docker
-
Установите Docker
-
Установите docker-compose
-
Выполните следующую команду:
$ docker compose --profile server up -d --wait ...docker-composeзагрузит все необходимые образы, создаст контейнеры и запустит сервер.Параметры можно задать через файл
.envили разделenvironmentвdocker-compose.ymldocker-compose.yml
server: image: mtsrus/data-rentgen:${VERSION:-latest} command: python -m data_rentgen.server --host 0.0.0.0 --port 8000 restart: unless-stopped env_file: .env.docker ports: - 8000:8000 # PROMETHEUS_MULTIPROC_DIR is required for multiple workers, see: # https://prometheus.github.io/client_python/multiprocess/ environment: PROMETHEUS_MULTIPROC_DIR: /tmp/prometheus-metrics # tmpfs dir is cleaned up each container restart tmpfs: - /tmp/prometheus-metrics:mode=1777 healthcheck: test: [CMD-SHELL, curl -f http://localhost:8000/monitoring/ping] interval: 30s timeout: 5s retries: 3 start_period: 5s depends_on: db: condition: service_healthy db-migration: condition: service_completed_successfully profiles: - server - frontend - all
.env.docker
Common backend config
DATA_RENTGEN__DATABASE__URL=postgresql+asyncpg://data_rentgen:changeme@db:5432/data_rentgen DATA_RENTGEN__LOGGING__PRESET=colored
See Backend -> Server -> Configuration documentation
DATA_RENTGEN__SERVER__DEBUG=false
-
После запуска и готовности сервера откройте http://localhost:8000/docs.
Без Docker
-
Установите Python 3.10 или выше
-
Настройте базу данных, выполните миграции и создайте партиции
-
Создайте виртуальное окружение
$ python -m venv /some/.venv
...
$ source /some/.venv/activate
- Установите пакет
data-rentgenсо следующими дополнительными зависимостями:
$ pip install data-rentgen[server,postgres]
...
- Запустите процесс сервера
$ python -m data_rentgen.server --host 0.0.0.0 --port 8000
...
Это тонкая обёртка вокруг CLI uvicorn, параметры и команды точно такие же.
- После запуска и готовности сервера откройте http://localhost:8000/docs.