Skip to content

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

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages