Petelka API - это RESTful API для управления пользователями, продуктами, категориями, заказами и комментариями в интернет-магазине. Проект построен на языке Go с использованием современных инструментов и библиотек для обеспечения высокой производительности и масштабируемости. API развернут и доступен по адресу https://api.petelka.velesoft.ru, а интерактивная документация доступна через Swagger UI по адресу https://api.petelka.velesoft.ru/swagger/index.html.
- Язык программирования: Go
- Фреймворк маршрутизации: Gorilla Mux
- Базы данных:
- PostgreSQL (основное хранилище)
- Redis (кэширование)
- Логирование: Собственный логгер
- Мониторинг: Prometheus
- Документация API: Swagger (OpenAPI)
- Аутентификация: JWT
- Регистрация и авторизация пользователей
- Управление продуктами (CRUD операции)
- Управление категориями (CRUD операции)
- Создание и управление заказами
- Создание комментариев к продуктам
- Поиск продуктов
- Разграничение доступа (публичные, защищенные и административные маршруты)
- Go (версия 1.16 или выше)
- PostgreSQL
- Redis
- Git
- Клонируйте репозиторий:
git clone https://github.com/alex-pyslar/petelka-api.git
cd petelka-api- Установите зависимости:
go mod download- Настройте переменные окружения:
Создайте файл
.envв корне проекта со следующими переменными:
DB_HOST=localhost
DB_PORT=5432
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=petelka_db
REDIS_ADDR=localhost:6379
REDIS_PASSWORD=
REDIS_DB=0
JWT_SECRET=your_jwt_secret- Скомпилируйте и запустите сервер:
go run main.go- Локально сервер будет доступен по адресу
http://localhost:8080. Для доступа к развернутому API используйте https://api.petelka.velesoft.ru.
Документация API доступна через Swagger UI по адресу: https://api.petelka.velesoft.ru/swagger/index.html. Swagger предоставляет интерактивный интерфейс для тестирования всех доступных эндпоинтов API.
POST /api/auth/register- Регистрация нового пользователяPOST /api/auth/login- Авторизация пользователяGET /api/products- Список всех продуктовGET /api/products/search- Поиск продуктовGET /api/products/{id}- Получение информации о продуктеGET /api/categories- Список всех категорийGET /api/categories/{id}- Получение информации о категории
POST /api/comments- Создание комментарияPOST /api/orders- Создание заказа
POST /api/products- Создание продуктаPUT /api/products/{id}- Обновление продуктаDELETE /api/products/{id}- Удаление продуктаPOST /api/categories- Создание категорииPUT /api/categories/{id}- Обновление категорииDELETE /api/categories/{id}- Удаление категорииGET /api/users- Список всех пользователейPUT /api/users/{id}- Обновление пользователяDELETE /api/users/{id}- Удаление пользователя
Метрики Prometheus доступны по адресу:
http://localhost:8080/metrics
Для развернутого сервера: https://api.petelka.velesoft.ru/metrics
Для генерации Swagger документации используйте:
swag init