Данный проект представляет собой веб-сервис для проведения опросов на языке Go с использованием базы данных Tarantool.
Проект позволяет:
- Создавать и управлять опросами.
- Обрабатывать HTTP-запросы с использованием Go.
- Вести логирование работы сервера и ошибок.
- Интегрироваться с базой данных Tarantool для хранения результатов опросов.
- main.go — точка входа в приложение.
- config.go — настройки и инициализация конфигурации.
- server.go — реализация HTTP-сервера.
- middleware.go — промежуточное ПО для обработки запросов.
- poll.go — бизнес-логика и модели опросов.
- poll_handler.go — обработка HTTP-запросов, связанных с опросами.
- logger.go — модуль логирования.
- tarantool.go — интеграция с базой данных Tarantool.
- config.lua — дополнительные конфигурационные настройки.
После запуска сервера API доступен по адресу, указанному в конфигурационных файлах (например, http://localhost:8000).
Примеры запросов:
- GET /polls — получение списка опросов.
- POST /polls — создание нового опроса.
- GET /polls/{id} — получение данных конкретного опроса.
Более подробная документация по API может быть добавлена в будущем.
- Для быстрого запуска рекомендуется использовать Docker-compose
После чего будет проект будет доступен по адресу из конфигурации или же по умолчанию(localhost:8000) API, Tarantool(localhost:3301)
docker-compose up --build -d
Чтобы задать другие переменные конфига, необходимо прописать ENV параметры при запуске
# Параметры отображения логов
ENV=local # по умолчанию
ENV=dev # dev окружение
ENV=prod # prod окружение
# Порт для REST API запросов
PORT_HTTP=8000 # по умолчанию
# Параметры Tarantool, в docker-compose файле переопределяются
TARANTOOL_HOST=tarantool
TARANTOOL_PORT=3301
Пример:
ENV=production docker compose up --build
-
Клонирование репозитория:
git clone git@github.com:George-c0de/PluginMattermost.git
-
Установка зависимостей: Если проект использует Go-модули, выполните:
go mod download
-
Сборка проекта:
go build -o pollapp cmd/bot/main.go
-
Запуск приложения: Запустите собранный бинарный файл:
./poolapp
Или выполните для быстрого запуска:
go run cmd/bot/main.go