Skip to content

ZufarIs/test_nebus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Organization Directory API

REST API приложение для справочника организаций, зданий и видов деятельности.

Описание проекта

Приложение предоставляет API для управления:

  • Организациями (с телефонами и видами деятельности)
  • Зданиями (с адресами и географическими координатами)
  • Видами деятельности (в виде дерева с максимальной глубиной 3 уровня)

Основные возможности

  • Получение списка организаций по зданию
  • Получение списка организаций по виду деятельности
  • Поиск организаций в заданном радиусе от точки на карте
  • Поиск организаций по названию
  • Поиск по иерархии видов деятельности

Технологический стек

  • FastAPI + Pydantic
  • SQLAlchemy + Alembic
  • Docker + Docker Compose

Установка и запуск

Через Docker

  1. Клонируйте репозиторий:
git clone <repository-url>
cd test_nebus
  1. Соберите и запустите контейнеры:
docker compose -f docker/docker-compose.yml up --build -d
  1. API будет доступно по адресу: http://localhost:8000/api/v1

Локальная разработка

  1. Создайте виртуальное окружение и установите зависимости:
python -m venv venv
source venv/bin/activate  # Linux/MacOS
# или
venv\Scripts\activate     # Windows
pip install -r requirements.txt
  1. Запустите приложение:
python run.py

API Документация

После запуска приложения документация доступна по адресам:

Аутентификация

Все запросы к API должны содержать заголовок X-API-Key:

curl -H "X-API-Key: your_secret_api_key" http://localhost:8000/api/v1/organizations

Примеры запросов

  1. Получение списка организаций в здании:
curl -H "X-API-Key: your_secret_api_key" \
     http://localhost:8000/api/v1/organizations?building_id=1
  1. Поиск организаций по виду деятельности:
curl -H "X-API-Key: your_secret_api_key" \
     http://localhost:8000/api/v1/organizations?activity_id=1
  1. Поиск организаций в радиусе:
curl -H "X-API-Key: your_secret_api_key" \
     "http://localhost:8000/api/v1/organizations?lat=55.7558&lon=37.6173&radius=5"

Структура проекта

organization_directory/
├── alembic/              # Миграции БД
├── app/                  # Основной код
│   ├── api/             # API endpoints и роутеры
│   │   └── v1/         # Версия 1 API
│   │       ├── endpoints/  # Обработчики запросов
│   │       └── router.py   # Роутер API v1
│   ├── core/            # Конфигурация и общие компоненты
│   ├── db/              # Работа с БД и инициализация
│   ├── initial_data/    # CSV файлы с начальными данными
│   ├── models/          # SQLAlchemy модели
│   └── schemas/         # Pydantic схемы
├── docker/              # Docker файлы
└── data/                # БД SQLite

Разработка

Создание миграций

alembic revision --autogenerate -m "описание_изменений"
alembic upgrade head

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published