Golang: введение в фреймворк gin-vue-admin

задняя часть Go
Golang: введение в фреймворк gin-vue-admin

Я участвовал в 5-м дне Ноябрьского испытания обновлений. Чтобы узнать подробности, см.:Вызов последнего обновления 2021 г.

Позвольте мне показать вам мои подарки за последний месяц, хи-хи

gin-vue-admin — это фреймворк системы фонового управления, основанный на gin+vue, интегрирующий аутентификацию jwt, управление правами, динамическую маршрутизацию, упаковку подкачки, многоточечный перехват входа в систему, права доступа к ресурсам, загрузку и выгрузку, генератор кода, генератор форм, общие Рабочий процесс и другие основные функции, набор интерфейсных и внутренних кодов CURD за пять минут, в настоящее время поддерживает VUE3, вопросы приветствия и пр~

адрес дома: git ee.com/pixelmax/GI…

гитхаб-адрес: GitHub.com/flipped-AU R…

Репозиторий плагинов и спецификации разработки:GitHub.com/flipped-AU R…

Ветвь потока утверждения: GitHub.com/flipped-AU R…

Поговорим о проблемах, возникающих при запуске кода

D:\nodejs\node_global\webpack.ps1, потому что запуск скриптов в этой системе запрещен...

Я использовал yarn в разработке сегодня, Yarn был установлен глобально раньше, и его также можно нормально использовать в cmd, но в VS Code сообщается об ошибке. Следующая информация: нет

法加载文件 D:\nodejs\node_global\webpack.ps1,因为在此系统上禁止运行脚本,
有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170

решение:

Начните с запуска VS Code от имени администратора.

Выполните get-ExecutionPolicy на терминале, и печать покажет Restricted, что указывает на запрещенное состояние.

Затем выполните set-executionpolicy remotesigned -s currentuser в терминале.

Введите здесь get-ExecutionPolicy, чтобы просмотреть его и отобразить RemoteSigned.

При последующем использовании yarn install вышеперечисленные проблемы больше не возникнут, и другие подобные ситуации также являются теми же решениями.

# 进入web文件夹
cd web

# 安装依赖
cnpm install || npm install

# 启动web项目
npm run serve

Хорошо, давайте введем текст::::

проектная документация

онлайн-документация : www.gin-vue-admin.com

инициализация

Обучающие видеоролики от среды к развертыванию

обучение развитию(Автор:LLemonGreen And Fann)

важный намек

1. Этот проект имеет документацию и подробные видеоуроки от начала до разработки и развертывания.

2. Этот проект требует, чтобы у вас была определенная основа golang и vue.

3. Вы можете выполнить все с помощью наших руководств и документов, поэтому мы больше не предоставляем бесплатные технические услуги, если вам нужны услуги, пожалуйста, сделайтеПлатная поддержка

4. Если вы используете этот проект в коммерческих целях, пожалуйста, соблюдайте соглашение Apache2.0 и сохраните заявление о технической поддержке автора. Вам необходимо сохранить следующую информацию об авторских правах, а остальные информационные функции не налагают никаких ограничений. Если вам нужно удалить, пожалуйста, свяжитесь с WeChat: shouzi_1994

1. Основное введение

1.1 Введение в проект

Джин-вью-админ этоvueиginРазработанная платформа разработки с полным стеком для разделения интерфейса и сервера объединяет аутентификацию jwt, динамическую маршрутизацию, динамическое меню, аутентификацию casbin, генератор форм, генератор кода и другие функции, предоставляет множество образцов файлов, что позволяет вам сосредоточиться больше времени в развитии бизнеса.

онлайн предварительный просмотр: demo.gin-vue-admin.com

Тестовое имя пользователя: admin

Тестовый пароль: 123456

1.2 Рекомендации по взносам

Привет! Прежде всего спасибо за использование gin-vue-admin.

Gin-vue-admin — это набор фреймворков с открытым исходным кодом с архитектурой разделения клиентской и серверной частей, подготовленных для быстрых исследований и разработок с целью быстрого создания проектов малого и среднего размера.

Рост Gin-vue-admin неотделим от всеобщей поддержки.Если вы хотите внести свой код или внести предложения для gin-vue-admin, прочитайте следующее.

1.2.1 Спецификация выпуска

  • Проблемы используются только для сообщения об ошибках или функциях и контенте, связанном с дизайном, другой контент может быть закрыт напрямую. Если у вас есть вопросы при использовании, перейдите в Slack илиGitterКонсультация.

  • Перед отправкой вопроса, пожалуйста, выполните поиск, чтобы увидеть, поднимался ли уже соответствующий контент.

1.2.2 Спецификация запроса на слияние

  • Пожалуйста, сначала разветвите копию на собственный проект, не создавайте ветку непосредственно под складом.

  • информация о коммите должна начинаться с[文件名]: 描述信息заполните форму, напримерREADME.md: fix xxx bug.

  • Убедитесь, что PR отправленdevelopфилиал вместоmasterфилиал.

  • Если это исправление ошибки, пожалуйста, дайте описание в PR.

  • Слияние кода требует участия двух сопровождающих: один человек просматривает и утверждает его, другой просматривает его снова, и после утверждения его можно объединить.

2. Инструкция по применению

- node版本 > v12.18.3
- golang版本 >= v1.16
- IDE推荐:Goland
- 初始化项目: 不同版本数据库初始化不通 参见 https://www.gin-vue-admin.com/docs/first_master
- 替换掉项目中的七牛云公钥,私钥,仓名和默认url地址,以免发生测试文件数据错乱

2.1 серверный проект

использоватьGolandДождитесь инструментов редактирования, откройте каталог сервера, но не корневой каталог gin-vue-admin.

# 克隆项目
git clone https://github.com/flipped-aurora/gin-vue-admin.git
# 进入server文件夹
cd server

# 使用 go mod 并安装go依赖包
go generate

# 编译 
go build -o server main.go (windows编译命令为go build -o server.exe main.go )

# 运行二进制
./server (windows运行命令为 server.exe)

2.2 веб-проект

# 进入web文件夹
cd web

# 安装依赖
cnpm install || npm install

# 启动web项目
npm run serve

2.3 Документация API автоматизации swagger

2.3.1 Установить чванство

(1) Может посещать иностранные веб-сайты
go get -u github.com/swaggo/swag/cmd/swag
(2) Невозможно получить доступ к иностранным веб-сайтам

Поскольку в Китае невозможно установить вещи под пакетом go.org/x, рекомендуется использоватьgoproxy.cnилиgoproxy.io

# 如果您使用的 Go 版本是 1.13 - 1.15 需要手动设置GO111MODULE=on, 开启方式如下命令, 如果你的 Go 版本 是 1.16 ~ 最新版 可以忽略以下步骤一
# 步骤一、启用 Go Modules 功能
go env -w GO111MODULE=on 
# 步骤二、配置 GOPROXY 环境变量
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct

# 如果嫌弃麻烦,可以使用go generate 编译前自动执行代码, 不过这个不能使用 `Goland` 或者 `Vscode` 的 命令行终端
cd server
go generate -run "go env -w .*?"

# 使用如下命令下载swag
go get -u github.com/swaggo/swag/cmd/swag

2.3.2 Создание документации по API

cd server
swag init

После выполнения вышеуказанной команды папка docs появится в каталоге сервера.docs.go, swagger.json, swagger.yamlОбновляются три файла, после запуска службы go введите в браузереhttp://localhost:8888/swagger/index.htmlВы можете просмотреть документацию swagger

3. Технический отбор

  • Интерфейс: использование на основеVueизElementСоздайте базовую страницу.
  • бэкэнд: сGinБыстро создайте базовый API в спокойном стиле,GinЭто веб-фреймворк, написанный на языке go.
  • База данных: использоватьMySql(5.6.44) версия, использующаяgormВыполнение основных операций с базой данных.
  • кеш: использоватьRedisРеализовать запись текущего активного пользователяjwtтокен и реализовать ограничения на множественный вход.
  • Документация по API: ИспользованиеSwaggerДокументация по автоматизации сборки.
  • файл конфигурации: использоватьfsnotifyиviperвыполнитьyamlформат файла конфигурации.
  • журнал: использоватьzapРеализовать ведение журнала.

4. Архитектура проекта

4.1 Схема архитектуры системы

系统架构图

4.2 Внешний рабочий чертеж (предоставлено: baobeisuper)

前端详细设计图

4.3 Структура каталогов

    ├── server
        ├── api             (api层)
        │   └── v1          (v1版本接口)
        ├── config          (配置包)
        ├── core            (核心文件)
        ├── docs            (swagger文档目录)
        ├── global          (全局对象)                    
        ├── initialize      (初始化)                        
        │   └── internal    (初始化内部函数)                            
        ├── middleware      (中间件层)                        
        ├── model           (模型层)                    
        │   ├── request     (入参结构体)                        
        │   └── response    (出参结构体)                            
        ├── packfile        (静态文件打包)                        
        ├── resource        (静态资源文件夹)                        
        │   ├── excel       (excel导入导出默认路径)                        
        │   ├── page        (表单生成器)                        
        │   └── template    (模板)                            
        ├── router          (路由层)                    
        ├── service         (service层)                    
        ├── source          (source层)                    
        └── utils           (工具包)                    
            ├── timer       (定时器接口封装)                        
            └── upload      (oss接口封装)                        
    
    └─web            (前端文件)
        ├─public        (发布模板)
        └─src           (源码包)
            ├─api       (向后台发送ajax的封装层)
            ├─assets	(静态文件)
            ├─components(组件)
            ├─router	(前端路由)
            ├─store     (vuex 状态管理仓)
            ├─style     (通用样式文件)
            ├─utils     (前端工具库)
            └─view      (前端页面)

5. Основные функции

  • Управление правами: на основеjwtиcasbinРеализовано управление правами.
  • Загрузка и загрузка файлов: реализация на основе七牛云, 阿里云, 腾讯云операция загрузки файлов (пожалуйста, разработайте собственное приложение, соответствующее каждой платформеtokenили соответствующийkey).
  • Инкапсуляция пейджинга: интерфейсное использованиеmixinsИнкапсулировать пейджинг, вызовы методов пейджингаmixinsВот и все.
  • Управление пользователями: системный администратор назначает роли пользователей и разрешения ролей.
  • Управление ролями: создайте основной объект управления разрешениями и назначьте ролям различные разрешения API и разрешения меню.
  • Управление меню: реализовать динамическую конфигурацию меню пользователей и реализовать разные меню для разных ролей.
  • Управление API: разные пользователи имеют разные разрешения для интерфейсов API, которые можно вызывать.
  • Управление конфигурацией: файл конфигурации можно изменить на переднем плане (эта функция недоступна на сайте онлайн-опыта).
  • Условный поиск: добавьте пример условного поиска.
  • Пример отдыха: вы можете обратиться к примеру API в модуле управления пользователями.
  • Ограничения мульти-входа: Требуетсяconfig.yamlсредняя ручкаsystemсерединаuse-multipointИзмените его на true (вам нужно настроить Redis и параметры Redis в Config самостоятельно. На этапе тестирования, если есть ошибки, пожалуйста, сообщайте о них вовремя).
  • Фрагментированная длинная загрузка: содержит примеры загрузки файлов и загрузки больших файлов.
  • Конструктор форм: Конструктор форм использует@form-generator.
  • Генератор кода: фоновая базовая логика и простой генератор творожного кода.

6. База знаний

6.1 Блог команды

woohoo.yuque.com/flipped-AU R…

Есть обучающие видео по фреймворку. Если вы считаете, что проект полезен для вас, вы можете добавить мой личный WeChat: shouzi_1994, вы можете изложить свои ценные потребности.

6.2 Обучающее видео

(1) Практическое обучающее видео

воооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо

(2) Введение и использование внутренней настройки структуры каталогов

Woohoo. Scale ratio.com/video/BV1 small 4…  

(3) Базовое обучающее видео по Голангу

билибили:space.scalescale.com/322210472/От…

(4) Базовое обучение джин-фреймворку

билибили:space.scalescale.com/322210472/От…

(5) вводное видео об обновлении версии gin-vue-admin

билибили:space.scalescale.com/322210472/От…