Полноценное RESTful-приложение для управления книгами, реализованное на Go с использованием PostgreSQL, Gin, Swagger и Docker.
- 🔍 Получение книги по ID
- 📋 Получение всех книг
- ➕ Добавление книги
- ✏️ Обновление книги
- ❌ Удаление книги
- 📑 Swagger UI-документация
- Go
- PostgreSQL
- Gin — фреймворк для HTTP-сервера
- Swaggo — генерация Swagger-документации
- Docker & Docker Compose
- Envconfig — correct export from env file
- Logrus — Логирование с помощью Logrus
- Makefile — автоматизация команд
.env
— переменные окружения
TestTaskForJun/
│
├── cmd/ # Точка входа (main.go)
├── pkg/database/ # Подключение к PostgreSQL
├── docs/ # Swagger-файлы (генерируются автоматически)
├── scheme/ # SQL-скрипты для инициализации БД
├── .env # Переменные окружения (не коммитить!)
├── .gitignore # Исключения Git
├── Makefile # Набор команд для сборки и запуска
├── Dockerfile # Docker-образ для приложения
├── docker-compose.yml # Сборка и запуск всех контейнеров
├── Task.pdf # 📄 Файл с описанием задачи
├── go.mod / go.sum # Зависимости проекта
└── README.md # Этот файл
DB_HOST=db
DB_PORT=5432
DB_USER=postgres
DB_NAME=bookTest_db
DB_PASSWORD=mysecretpassword
Используй встроенные команды через
make
:
make build # Собрать образы
make run # Запустить контейнеры
make migrate
Выполнит SQL-скрипты из
scheme/
для создания таблицыbooks
.
Генерация документации:
make swag
Swagger UI будет доступен после запуска по адресу:
👉 http://localhost:8080/swagger/index.html
Метод | Endpoint | Описание |
---|---|---|
GET | /book/:id | Получить книгу по ID |
GET | /books | Получить все книги |
POST | /create | Создать книгу |
PUT | /update | Обновить книгу |
DELETE | /delete/:id | Удалить книгу по ID |
{
"title": "Грокаем алгоритмы",
"description": "Пошаговое руководство по алгоритмам"
}
Файл Task.pdf
содержит подробное описание задачи и требований.
Он находится в корне проекта.
Alexander Demchenko
- GitHub: @PhoenixJustCode
- Telegram: @phoenix_S_E