Данный проект представляет собой простой сервис на языке Go, который взаимодействует с базой данных PostgreSQL. Данные хранятся в базе, поддерживаются базовые операции (CRUD) над сущностью пользователя.
- Docker 20.10+
- Docker Compose 1.29+
- (Опционально) Git для клонирования репозитория
- Клонировать репозиторий (или скачать архив с исходным кодом):
git clone https://github.com/h6x0r/go-demo.git
- Собрать и запустить контейнеры (приложение и базу данных):
docker-compose up --build
- Флаг
--build
заставит Docker пересобрать образ приложения. - По умолчанию проект будет доступен на порту
8080
(приложение) и5432
(PostgreSQL).
- (Опционально) Запустить в фоне:
docker-compose up --build -d
- Контейнеры будут запущены в фоновом режиме.
- Проверить логи (если нужно):
docker-compose logs -f
- Остановить контейнеры:
docker-compose down
После запуска на порту 8080
работает ваше Go-приложение. Примеры HTTP-запросов, которые вы можете отправлять (например, через Postman или curl
):
Все запросы к сервису описаны в Postman-коллекции, расположенной в корневой папке проекта
- Создать нового пользователя (POST /user):
{
"firstname": "Carlos",
"lastname": "Lopez",
"email": "carlos@example.com",
"age": 29
}
- Получить пользователя по идентификатору (GET /user/:id)
- Обновить данные пользователя (PATCH /user/:id)
- Удалить пользователя (DELETE /user/:id)
Основные директории:
- cmd/server: Точка входа для Go-приложения.
- internal/database: Логика подключения и миграции базы данных.
- internal/repository: Логика взаимодействия с PostgreSQL (CRUD).
- internal/handlers: Обработчики HTTP-запросов, связывающие маршруты с логикой репозитория.
Файлы:
- Dockerfile: Описание сборки контейнера с Go-приложением.
- docker-compose.yml: Файл, в котором определена конфигурация контейнеров (Go-приложение + PostgreSQL).
- go.mod / go.sum: Модули и зависимости Go.
При необходимости вносите правки под ваши потребности, добавляйте инструкции по тестированию или дополнительную информацию.