Skip to content

Rest API на Fiber фреймворке с использованием Луковичной архитектуры

Notifications You must be signed in to change notification settings

eliofery/golang-onion

Repository files navigation

Rest API с реализацией Луковичной архитектуры на Fiber фреймворке

Реализация CRUD Rest API на фреймворке Fiber с авторизацией по JWT токену.

В качестве базы данной была использована Postgres.

Основной уклон был сделан на построении Луковичной архитектуры и реализации ролей у пользователей.

Список доступного апи.

Скриншот

Команды проекта

Автоматическая сборка проекта при изменении файлов.

docker compose up -d

make watch

Используемые пакеты

fiber - фреймворк

go get -u github.com/gofiber/fiber/v3

godotenv - переменные окружения

go get github.com/joho/godotenv

testify - тестирование

go get github.com/stretchr/testify

viper - yml конфигурация

go get github.com/spf13/viper

sqlite3 - база данных sqlite

go get github.com/mattn/go-sqlite3

pgx - база данных postgres pgerrcode - коды ошибок postgres

go get github.com/jackc/pgx/v5
go get github.com/jackc/pgerrcode

goose - миграция базы данных

go install github.com/pressly/goose/v3/cmd/goose@latest
go get github.com/pressly/goose/v3

mysql - база данных mysql

go get github.com/go-sql-driver/mysql

jwt - токен

go get -u github.com/golang-jwt/jwt/v5

modd - автоматическая компиляция при изменении файлов

go install github.com/cortesi/modd/cmd/modd@latest

validator - валидация данных

go get github.com/go-playground/validator/v10

bcrypt - шифрование

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

About

Rest API на Fiber фреймворке с использованием Луковичной архитектуры

Topics

Resources

Stars

Watchers

Forks