Реализация CRUD Rest API на фреймворке Fiber с авторизацией по JWT токену.
В качестве базы данной была использована Postgres.
Основной уклон был сделан на построении Луковичной архитектуры и реализации ролей у пользователей.
Список доступного апи.
Автоматическая сборка проекта при изменении файлов.
docker compose up -d
make watch
go get -u github.com/gofiber/fiber/v3
godotenv - переменные окружения
go get github.com/joho/godotenv
go get github.com/stretchr/testify
go get github.com/spf13/viper
go get github.com/mattn/go-sqlite3
pgx - база данных postgres pgerrcode - коды ошибок postgres
go get github.com/jackc/pgx/v5
go get github.com/jackc/pgerrcode
go install github.com/pressly/goose/v3/cmd/goose@latest
go get github.com/pressly/goose/v3
go get github.com/go-sql-driver/mysql
go get -u github.com/golang-jwt/jwt/v5
modd - автоматическая компиляция при изменении файлов
go install github.com/cortesi/modd/cmd/modd@latest
go get github.com/go-playground/validator/v10
go get golang.org/x/crypto/bcrypt
# Создание миграции
goose -dir ./internal/database/migration create <имя миграции> sql
# Переименовывает миграции с формата даты создания в порядковый номер создания
# 20250104093011_<имя миграции>.sql -> 00001_<имя миграции>.sql
goose -dir ./internal/database/migration fix
# Вариант 1 (длинный)
goose -dir internal/database/migration postgres "postgresql://root:123456@127.0.0.1:5432/goan?sslmode=disable" status
# Вариант 2 (короткий)
export GOOSE_DRIVER=postgres
export GOOSE_DBSTRING=postgresql://root:123456@127.0.0.1:5432/goan?sslmode=disable
goose -dir internal/database/migration status
goose -dir internal/database/migration up
goose -dir internal/database/migration down