Skip to content

VIVERA83/some_api_service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Некое тестовое задание


Идея исполнение:

  1. API на FastApi
  2. База данных для хранения пользовательских данных Postgres
  3. Для хранения изображений (аватарок) в качестве облако Yandex Disk
  4. Обработка изображений выведена в отдельный сервис, дабы разгрузить API сервис и убрать CPU-Bound операции, да и транзит обработанной фотографии в "облако" может проходить без участия API сервиса
  5. Определение геолокации (по заданию необходимо проводить поиск ближайших участников) выведена в отдельный сервис. Определение геолокации производится по IP, более точную систему определения брать не стал так как, зачастую провайдеры просят не кэшировать данные, а без этих данных производить поиск неудобно.
  6. Операции по работе с геолокацией и изображениями производятся через RPC. Суть: API сервис кидает задания в брокер сообщений RabbitMQ в соответствующею очередь. На другом о конце данные задания подхватывает соответствующий сервис который производит необходимые манипуляции с данными и отправляет их дальше. Геолокация - данные отправляет в БД, Обработка изображений - данные отправляет в "облако", а ссылку на картинку отправляет в БД.

ЗАПУСК

Docker:

Шаг 1: установите Docker, если еще не установлен. Шаг 2: скачайте репозиторий
Шаг 3: запустите:

docker-compose up --build

Шаг 4: При первом запуске, зайдите в контейнер docker exec -t dating bash далееalembic upgrade head, создадим таблицы в Postgres

About

Пример Api сервиса

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published