+
Skip to content

h6x0r/go-demo

Repository files navigation

Пользовательский сервис на Go

Данный проект представляет собой простой сервис на языке Go, который взаимодействует с базой данных PostgreSQL. Данные хранятся в базе, поддерживаются базовые операции (CRUD) над сущностью пользователя.

Содержание

  1. Требования
  2. Установка и запуск
  3. Использование
  4. Структура проекта

Требования

  • Docker 20.10+
  • Docker Compose 1.29+
  • (Опционально) Git для клонирования репозитория

Установка и запуск

  1. Клонировать репозиторий (или скачать архив с исходным кодом):
   git clone https://github.com/h6x0r/go-demo.git
  1. Собрать и запустить контейнеры (приложение и базу данных):
   docker-compose up --build
  • Флаг --build заставит Docker пересобрать образ приложения.
  • По умолчанию проект будет доступен на порту 8080 (приложение) и 5432 (PostgreSQL).
  1. (Опционально) Запустить в фоне:
   docker-compose up --build -d
  • Контейнеры будут запущены в фоновом режиме.
  1. Проверить логи (если нужно):
   docker-compose logs -f
  1. Остановить контейнеры:
   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.

При необходимости вносите правки под ваши потребности, добавляйте инструкции по тестированию или дополнительную информацию.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载