1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lyric-gin-admin

Клонировать/Скачать
README_CN.md 6.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 22:27 5bc64cf

Gin-Admin

Основанный на GIN + GORM 2.0 + Casbin 2.0 + Wire DI, это лёгкий, гибкий, элегантный и многофункциональный фреймворк для реализации RBAC.

Функциональные особенности

  • Следование стандартам RESTful API и интерфейсному программированию.
  • Более компактная структура проекта с модульным дизайном, что повышает читаемость и удобство сопровождения кода.
  • Поддержка разнообразных функций промежуточного слоя (JWTAuth, CORS, RequestLogger, RequestRateLimiter, TraceID, Casbin, Recover, GZIP, StaticWebsite) на основе GIN.
  • Реализация RBAC доступа на основе Casbin.
  • Использование GORM 2.0 для доступа к базе данных.
  • Применение WIRE для внедрения зависимостей — внедрение зависимостей упрощает процесс инициализации многоуровневых зависимостей между модулями.
  • Интеграция Zap & Context для логирования, включая вывод ключевых полей, таких как TraceID/UserID (с возможностью записи в GORM).
  • Аутентификация пользователей на основе JWT.
  • Автоматическое создание Swagger документации с помощью Swaggo.
  • Тестирование API с использованием testify.
  • Безсерверная архитектура с горизонтальным масштабированием, повышающая доступность сервиса — динамическое управление правами доступа Casbin реализуется через запланированные задачи и Redis.
  • Эффективные инструменты разработки, позволяющие создавать полноценные модули кода — gin-admin-cli.

swagger

Фронтенд-проект

Установка зависимостей

Для работы с проектом необходимо установить следующие инструменты:

  • Go 1.19+.
  • Wire go install github.com/google/wire/cmd/wire@latest.
  • Swag go install github.com/swaggo/swag/cmd/swag@latest.
  • GIN-ADMIN-CLI go install github.com/gin-admin/gin-admin-cli/v10@latest.

Быстрый старт

Создание нового проекта

Можно использовать команду gin-admin-cli help new для получения подробной информации о команде. Пример команды:

gin-admin-cli new -d ~/go/src --name testapp --desc 'A test API service based on golang.' --pkg 'github.com/xxx/testapp' --git-url https://gitee.com/lyric/gin-admin.git

Запуск сервиса

Чтобы изменить язык меню, можно изменить значение параметра MenuFile = "menu_cn.json" в файле конфигурации configs/dev/server.toml. Пример запуска:

cd ~/go/src/testapp
make start
# или
go run main.go start

Компиляция сервиса

Пример компиляции:

make build
# или
go build -ldflags "-w -s -X main.VERSION=v1.0.0" -o testapp

Генерация Docker-образа

Пример генерации образа:

sudo docker build -f ./Dockerfile -t testapp:v1.0.0 .

Автоматическое создание новых функциональных модулей

Более подробную информацию о команде можно получить в документации gin-admin-cli. Пример использования:

gin-admin-cli gen -d . -m CMS --structs Article --structs-comment 'Article management'

Удаление модуля

Более подробную информацию о команде можно получить в документации gin-admin-cli. Пример удаления модуля:

gin-admin-cli rm -d . -m CMS --structs Article

Генерирование Swagger-документации

Swagger документация может быть автоматически сгенерирована с помощью инструмента Swag. Пример генерации:

make swagger
# или
swag init --parseDependency --generalInfo ./main.go --output ./internal/swagger

Генерация кода для внедрения зависимостей

Внедрение зависимостей позволяет упростить процесс инициализации зависимостей между уровнями модулей. Инструмент Wire может автоматически генерировать код для внедрения зависимостей. Пример генерации кода:

make wire
# или
wire gen ./internal/wirex

Обзор структуры проекта

Структура проекта включает следующие каталоги и файлы:

  • cmd — каталог с определениями командных строк.
    • start.go — файл запуска.
    • stop.go — файл остановки.
    • version.go — файл версии.
  • configs — каталог конфигурационных файлов.
    • dev — каталог файлов конфигурации для разработки.
      • logging.toml — файл конфигурации логов.
      • middleware.toml — файл конфигурации промежуточного ПО.
      • server.toml — файл конфигурации сервера.
    • menu.json — файл начальной настройки меню.
    • rbac_model.conf — файл конфигурации модели RBAC Casbin.
  • internal — каталог внутренних компонентов.
    • bootstrap — каталог загрузочных файлов.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/lyric-gin-admin.git
git@api.gitlife.ru:oschina-mirror/lyric-gin-admin.git
oschina-mirror
lyric-gin-admin
lyric-gin-admin
main