Проект Kolesa API — это backend-сервис для платформы по размещению и поиску объявлений о продаже автомобилей. Использует архитектуру микросервисов и разработан на языке Go с использованием фреймворка Gin.
- Go — основной язык разработки
- Gin — высокопроизводительный HTTP-фреймворк
- PostgreSQL — основная реляционная база данных
- Redis — кеширование и хранение сессий
- Backblaze B2 (S3 совместимый) — хранилище для изображений и медиафайлов
- Docker — контейнеризация
- gRPC / REST — взаимодействие между микросервисами
- Go Test / Testify — модульные и интеграционные тесты
Проект состоит из нескольких микросервисов:
auth-service— регистрация, логин, авторизация, JWTuser-service— управление профилями пользователейcar-service— объявления об автомобилях, фильтрация, поискmedia-service— загрузка изображений и медиа на Backblazegateway— точка входа, Gin + Reverse Proxy (API Gateway)
Каждый сервис взаимодействует с другими через gRPC или REST в зависимости от сценария. Redis используется как shared-кеш и брокер для rate-limiting и хранения токенов.
git clone https://github.com/yourusername/kolesa-api.git
cd kolesa-api
docker-compose up --buildКонфигурации находятся в configs/ и поддерживают переменные окружения через .env.
go test ./...Для e2e тестов планируется использовать Postman + Newman или k6.
- Регистрация и авторизация
- Создание, редактирование и поиск объявлений
- Загрузка изображений авто на Backblaze
- Кеширование частых запросов через Redis
- REST и gRPC API
- Реализация full-text поиска по объявлениям
- Подключение Prometheus + Grafana для мониторинга
- OAuth2 авторизация через Google
- Добавить rate limiting
- CI/CD пайплайн (GitHub Actions / GitLab CI)
kolesa-api/
├── auth-service/
├── email-service/
├── gateway/
├── proto/
├── configs/
├── docker-compose.yml
└── README.md