Проект представляет собой простейший пример описание API и интеграции с базой данных PostgreSQL. Используются структурированные подходы для тестирования, обработки конфигураций и документации.
API построен на Go с использованием Gin, GoDoc и Goose для миграций базы данных.
Проект организован следующим образом:
bin/- скомпилированные файлыcmd/- основная директория сmain.goдля запуска сервера.internal/handler/- содержит логику обработки HTTP-запросов.internal/repository/- содержит реализации доступа к базе данных.internal/routes/- содержит генерацию маршрутов APIinternal/config/- модуль конфигурации для загрузки переменных из.envфайла.db/migrations/- содержит SQL-миграции для базы данных, управляемые через Goose.db/queries/- содержатся запросы к БД в формате .sqltests/- директория для тестов API и интеграционных тестов.
- Go 1.23.2
- Gin
- Goose (для управления миграциями)
- PostgreSQL
- Godoc
- Swagger
git clone https://github.com/kyvees13/lab-server.git
cd lab-server# для загрузки зависимостей
make depsСледует скопировать файл с примером .env.example в .env откуда проект считывает все переменные
cp .env.example .envИ заполнить его переменными по описанному шаблону
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASS=password
DB_NAME=lab_databaseТесты находятся в папке /tests и используют стандартную библиотеку testing. Каждый тест проверяет конечные точки API и ожидает корректный ответ от сервера.
make testДокументация API создается с использованием Swagger.
make swagger-initДокументация будет доступна по адресу /swagger/index.html после запуска сервера.