{"id":20045581,"url":"https://github.com/4444tensei/kazeframe","last_synced_at":"2025-05-05T09:30:53.875Z","repository":{"id":262452293,"uuid":"884068577","full_name":"4444TENSEI/KazeFrame","owner":"4444TENSEI","description":"Gin+Gorm+Redis项目快速开发脚手架，基础接口完善：登陆/注册/找回密码、jwt+中间件鉴权、邮件验证码等。内含在线/离线接口文档，CRUD皆已进行合理封装，便于扩展新的业务接口。","archived":false,"fork":false,"pushed_at":"2024-11-12T14:26:29.000Z","size":1,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-12T14:30:10.342Z","etag":null,"topics":["framework","gin","go","golang","gorm","jwt","mysql","redis","rsa","scaffold"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/4444TENSEI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-06T04:39:53.000Z","updated_at":"2024-11-12T14:26:33.000Z","dependencies_parsed_at":"2024-11-12T14:42:55.310Z","dependency_job_id":null,"html_url":"https://github.com/4444TENSEI/KazeFrame","commit_stats":null,"previous_names":["4444tensei/kazeframe"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4444TENSEI%2FKazeFrame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4444TENSEI%2FKazeFrame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4444TENSEI%2FKazeFrame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4444TENSEI%2FKazeFrame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/4444TENSEI","download_url":"https://codeload.github.com/4444TENSEI/KazeFrame/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224435927,"owners_count":17310752,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["framework","gin","go","golang","gorm","jwt","mysql","redis","rsa","scaffold"],"created_at":"2024-11-13T11:17:59.368Z","updated_at":"2024-11-13T11:18:00.938Z","avatar_url":"https://github.com/4444TENSEI.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=center\u003e\r\n\u003cimg src=\"https://testingcf.jsdelivr.net/gh/4444TENSEI/CDN/img/avatar/kaze/png/rounded.png\" alt=\"KazeCryptoAPI\" width=\"200\" height=\"200\"/\u003e\r\n\u003ch1\u003eKazeFrame\u003c/h1\u003e\r\n\u003ch3\u003eGin+Gorm+Redis轻量、快速开发脚手架，一切都能够由此开始。\u003c/h3\u003e\r\n\u003cp\u003eMVC设计模式，实现登陆、注册、邮件发送等多个在线项目开发必备基础接口\u003c/p\u003e\r\n\u003cp\u003e包含JWT鉴权、频繁请求限制中间件，以及一些实用、通用工具\u003c/p\u003e\r\n\u003cp\u003e以及本地运行日志/日志切割、详细的站点访问日志记录\u003c/p\u003e\r\n\u003cp\u003e封装数据CRUD操作已经全部封装好，极易拓展新增业务\u003c/p\u003e\r\n\u003cp\u003e\r\n    \u003cimg src=\"https://img.shields.io/badge/Go-00ADD8?style=for-the-badge\u0026logo=go\u0026logoColor=white\" /\u003e\r\n    \u003cimg src=\"https://img.shields.io/badge/redis-%23DD0031.svg?\u0026style=for-the-badge\u0026logo=redis\u0026logoColor=white\" /\u003e\r\n\u003c/p\u003e\r\n\u003c/div\u003e\r\n\r\n\r\n\u003e # 简介\r\n\r\n\u003e 相信很多时候你都需要一次又一次的重新开始，那么由KazeFrame来为你提供一个不错的出发点。\r\n\r\n1. 在线项目必备接口：登录、注册、接口请求日志等等\r\n2. 邮件服务：注册验证码、密码重置验证码发送，邮件HTML模板\r\n3. 中间件：权限认证中间件、基于IP统计的访问频率限制中间件、站点访问捕捉中间件\r\n4. 通用工具：JWT生成、密码散列加密、RSA非对称加密工具\r\n5. 用户在线状态：通过访问Token+刷新Token机制，实现用户在线状态监控以及令牌有效期控制\r\n6. 数据库访问层合理封装（`dao`包）：合理且不复杂的抽象、通用的分页查询方法等待，快速为你的新增业务接口集成CRUD操作\r\n7. 注释友好：每个文件都有非常详细的注释\r\n8. 详细的在线接口文档：[点击查看](https://apifox.com/apidoc/shared-dd0fa318-5437-499c-9227-956e9003fabc)\r\n\r\n![](https://testingcf.jsdelivr.net/gh/4444TENSEI/CDN/img/server/readme/KazeFrame/001.webp)\r\n\r\n![](https://testingcf.jsdelivr.net/gh/4444TENSEI/CDN/img/server/readme/KazeFrame/002.webp)\r\n\r\n![](https://testingcf.jsdelivr.net/gh/4444TENSEI/CDN/img/server/readme/KazeFrame/003.webp)\r\n\r\n\u003e # 开始\r\n\r\n1. ### 拉取项目，进入到项目根目录，启动你的编辑器\r\n\r\n   ```\r\n   git clone https://github.com/4444TENSEI/KazeFrame.git\r\n   ```\r\n\r\n2. ### 修改配置文件`./static/server/config/config.yml`\r\n\r\n   \u003e 自行去除`.example`后缀，配置说明内部有详细注释。*项目默认使用MySQL进行初始化，得益于Gorm你可以选择其他多种数据库，如需其他数据库可以自行前往./internal/config/db.go修改依赖*\r\n\r\n3. ### 运行您所配置好的数据库、Redis\r\n\r\n4. ### 启动服务\r\n\r\n   ```\r\n   go run .\r\n   ```\r\n\r\n   \u003e 推荐使用`Air`进行项目开发（项目运行时自动监测代码文件改动，自动重新编译进行热重载），另外项目启动时将会在项目目录下创建`运行日志.log`，能够用于排查部署到服务器后的运行错误\r\n\r\n   \u003e # 目录结构\r\n\r\n```\r\nKazeFrame\r\n├─ main.go  //主程序\r\n├─ go.mod   //模块配置\r\n├─ go.sum   //模块依赖\r\n├─ .air.toml    //air配置\r\n├─ script   //各类便捷脚本\r\n│  ├─ pack_dist_linux.ps1   //Linux可执行文件打包脚本\r\n│  ├─ pack_dist_win.ps1 //Windows可执行文件打包脚本\r\n│  └─ pack_source_code.ps1  //源码备份打包脚本\r\n├─ static   // 需要和项目编译好的可执行文件放在一起部署的静态资源目录\r\n│   ├─ ui   // 将会公开的静态资源目录，在这之中不要放敏感资源\r\n│   │  └─ welcome.html  // 欢迎页面\r\n│   └─ server   //后端部署所需的静态资源目录\r\n│       ├─ template // 模板文件目录，例如邮件HTML模板\r\n│       │  └─ email // 邮件模板目录\r\n│       │     └─ captcha.html   // 邮件验证码HTML模板\r\n│       └─ config   // 配置文件目录\r\n│           └─ config.yml.example   // 重要！项目配置文件\r\n├─ pkg  //公用包\r\n│  └─ util  //通用工具函数\r\n│     ├─ bcrypt.go  //用于数据库用户密码散列加密\r\n│     ├─ rsa.go //rsa密钥生成与验证\r\n│     ├─ jwt.go //jwt生成与验证\r\n│     └─ response_map.go    //Gin快捷json响应封装工具函数\r\n└─ internal //内部模块\r\n   ├─ service   //内部服务模块\r\n   │  ├─ email_service.go   //通用邮件服务\r\n   │  └─ user_service.go    //通用用户服务\r\n   ├─ router    //路由模块\r\n   │  └─ router.go    //定义接口路由\r\n   ├─ model //结构模型\r\n   │  ├─ table_basic.go //存放数据库自动创建的表结构\r\n   │  ├─ user_request.go    //用户请求结构体\r\n   │  └─ user_response.go   //用户响应结构体\r\n   ├─ middleware    //中间件\r\n   │  ├─ auth.go     //jwt权限验证中间件\r\n   │  ├─ cors.go     //跨域处理中间件\r\n   │  ├─ request_limit.go    //请求频率限制中间件\r\n   │  └─ request_log.go //请求日志中间件(记录到数据库表)\r\n   ├─ dao   //通用数据库访问层，封装好了常用的CRUD操作，在这里拓展新的数据库表仓库方法\r\n   │  ├─ init.go    //初始化数据库，并在这里为你的新接口、新数据表操作增加仓库初始化方法\r\n   │  ├─ create.go  //创建数据\r\n   │  ├─ delete.go  //删除数据\r\n   │  └─ update.go  //更新数据\r\n   │  ├─ read.go    //查询数据\r\n   ├─ config    //配置模块\r\n   │  ├─ config.go   //config.yml配置结构定义\r\n   │  ├─ db.go   //数据库配置\r\n   │  ├─ init.go    //负责项目整体运行初始化\r\n   │  ├─ logger.go    //zap日志/切割配置\r\n   │  ├─ redis.go    //redis配置\r\n   │  └─ seed.go    //初始化表数据\r\n   ├─ cache //缓存模块\r\n   │  ├─ create_captcha.go   //创建验证码\r\n   │  ├─ key_map.go //redis键名映射表\r\n   │  └─ set_status.go   //设置在线状态\r\n   └─ api   //接口模块\r\n      ├─ user   //用户接口\r\n      │  ├─ count_online.go //统计在线人数\r\n      │  ├─ delete_user.go  //删除用户\r\n      │  ├─ find_all_user.go    //查询所有用户\r\n      │  ├─ find_user_exact.go  //精确查询用户接口\r\n      │  ├─ find_user_fuzzy.go  //模糊查询用户接口\r\n      │  ├─ get_online_list.go  //获取在线用户列表\r\n      │  ├─ get_profile.go  //获取用户信息\r\n      │  ├─ keep_online.go   //使用刷新令牌刷新访问令牌维持用户在线\r\n      │  ├─ login.go     //登录\r\n      │  ├─ logout.go    //注销\r\n      │  ├─ register.go //注册\r\n      │  ├─ reset_password.go    //重置密码\r\n      │  └─ update_profile.go    //更新个人信息\r\n      ├─ email //邮件发送接口\r\n      │  └─ user_captcha.go\r\n      └─ monitor //接口访问日志、Redis缓存键操作接口\r\n         ├─ redis_clear.go   //清除Redis缓存接口、如接口请求频繁、邮件验证码\r\n         ├─ db_log_clear.go   //清除数据库中的\"接口请求日志\"表数据\r\n         └─ db_log_search.go  //查询数据库中的\"接口请求日志\"表数据\r\n```\r\n\r\n\u003e # **支持项目**\r\n\r\n- #### ⭐等待您小小的一个`Star`！\r\n\r\n- #### ⭐如果有任何Bug / 更多的建议，欢迎你随时提出issue！\r\n\r\n- #### ⭐联络作者：2479757568@qq.com\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F4444tensei%2Fkazeframe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F4444tensei%2Fkazeframe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F4444tensei%2Fkazeframe/lists"}