# GPAdmin-api **Repository Path**: siushin/GPAdmin-api ## Basic Information - **Project Name**: GPAdmin-api - **Description**: 基于 Laravel 的API框架,提供常用工具类、助手函数等服务(前端见GPAdmin) - **Primary Language**: PHP - **License**: MIT - **Default Branch**: main - **Homepage**: https://api.gpadmin.siushin.com - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-26 - **Last Updated**: 2026-01-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: Laravel, laravel-api ## README # GPAdmin-api 基于 Laravel 的 API 框架,提供常用工具类、助手函数等服务,采用模块化架构设计。 ## 📖 项目简介 GPAdmin-api 是一个基于 Laravel 12 构建的企业级 API 框架,采用模块化架构,提供用户管理、权限管理、日志管理等核心功能,支持快速开发 RESTful API 服务。 ## 🚀 技术栈 - **PHP** >= 8.3 - **Laravel** 12.0 - **Laravel Sanctum** - API 认证 - **Laravel Modules** - 模块化架构 - **MySQL** - 数据库 - **IP2Region** - IP 地址查询 ## ✨ 核心功能 - ✅ 用户登录 / 授权 - ✅ 管理员列表 - ✅ 用户管理(支持审核流程) - ✅ 日志管理(操作日志、登录日志、审计日志、通用日志) - ✅ 通知管理(公告、站内信) - ✅ 权限管理 - ✅ 系统参数配置 - ✅ 文件管理 - ✅ 数据字典 ## 🛠️ 环境要求 - PHP >= 8.3 - Composer - MySQL >= 5.7 - PHP 扩展:fileinfo, mbstring, pdo_mysql ## 📦 安装步骤 ### 1. 安装项目 ```shell composer create-project siushin/GPAdmin-api ``` ### 2. 配置环境 ```shell # 复制环境配置文件 cp .env.example .env # 生成应用密钥 php artisan key:generate # 创建符号链接 php artisan storage:link ``` > **注意**:需要确保 php.ini 中 `symlink` 函数未被禁用。 ### 3. 配置数据库 编辑 `.env` 文件,配置数据库连接: ```env DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel_api DB_USERNAME=root DB_PASSWORD= ``` ### 4. 创建数据库 在 MySQL 中创建数据库: ```sql CREATE DATABASE laravel_api CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` ### 5. 初始化系统 ```shell # 运行迁移和填充(会自动执行) composer install # 或手动执行 # 初次执行 php artisan migrate --seed # 清空所有并重新执行 php artisan migrate:fresh --seed ``` **默认管理员账号:** `admin` / `admin` ## ⚠️ 注意事项 > ⚠️ **重要提示**:执行 `composer create-project` 或 `composer install` 都会执行 **清空** 表并 **重新填充** 数据(`php artisan migrate:fresh --seed`)。如有重要数据,请自行备份。 ## ⚠️⚠️⚠️注意事项 > 注意:执行命令 `composer create-project` 或 `composer install` 都会执行 **清空** 表并 **重新填充** 数据 `php artisan migrate:fresh --seed`。如有重要数据,请自行备份。 ## 📚 文档链接 - [API 接口文档](https://s.apifox.cn/9e462aa5-5078-455c-b631-75b9d9e2a303) - [开发文档](https://github.com/siushin/GPAdmin-doc) - [前端项目](https://github.com/siushin/GPAdmin) ## 💻 常用命令 ### 开发 ```shell # 启动开发服务器(包含服务器、队列、日志、前端构建) composer run dev # 启动 Web 服务器 php artisan serve # 启动队列监听 php artisan queue:listen # 查看日志 php artisan pail ``` ### 数据库 ```shell # 运行迁移 php artisan migrate # 回滚迁移 php artisan migrate:rollback # 运行填充 php artisan db:seed # 重置数据库并填充 php artisan migrate:fresh --seed ``` ### 测试 ```shell # 运行测试 composer test # 或 php artisan test ``` ### 代码规范 ```shell # 代码格式化(使用 Laravel Pint) ./vendor/bin/pint ``` ### 其他命令 ```shell # 更新 Composer 的自动加载文件 composer dump-autoload # 启用 API 路由 php artisan install:api # 发布 CORS(跨源资源共享)配置 php artisan config:publish cors # 创建系统枚举类(示例) php artisan make:enum DictionaryCategoryEnum php artisan make:enum OrganizationTypeEnum ``` ## 目录结构 | 目录名 | 描述 | |--------|--------------------------------------------------------------| | Cases | | | Enums | 枚举类,一般以 `Enum` 结尾 | | Funcs | 助手函数,分以 `Lara` 开头的基于Laravel的助手函数,以及以 `Func`开头的常用助手函数(方便全局搜索) | | Traits | 特征,没有明显命名规范,自行查询源码或文档 | ## ❓ 常见问题 ### 413 Request Entity Too Large 处理方案: 1. **调整 Nginx 配置** - 配置文件中增加或修改 `client_max_body_size` 指令 - 例如,将大小设置为 100MB:`http { client_max_body_size 100m; }` 2. **调整 PHP 配置** - 调整 PHP 的 `upload_max_filesize` 和 `post_max_size` 配置项 - `upload_max_filesize = 100M` - `post_max_size = 100M` ## 📁 模块说明 项目采用模块化架构,主要模块包括: - **Base** - 基础模块(用户、管理员、日志、通知等) - **Sms** - 短信模块 ## 📂 目录结构说明 项目目录结构遵循 Laravel 规范,模块化代码位于 `Modules/` 目录下: | 目录名 | 描述 | |--------|--------------------------------------------------------------| | Cases | 案例/示例代码 | | Enums | 枚举类,一般以 `Enum` 结尾 | | Funcs | 助手函数,分以 `Lara` 开头的基于 Laravel 的助手函数,以及以 `Func` 开头的常用助手函数(方便全局搜索) | | Traits | 特征类,没有明显命名规范,自行查询源码或文档 | ## 📖 参考资料 - [overtru 相关扩展包](https://packagist.org/packages/overtrue/) ## 🧑🏻‍💻 关于作者 多年开发经验,具有丰富的前、后端软件开发经验~ 👤 作者: 💻 个人博客: 📮 邮箱:siushin@163.com ## 💡 反馈交流 在使用过程中有任何想法、合作交流,请加我微信 `siushin` (备注 github ): 添加我微信备注「GPAdmin」 ## ☕️ 打赏赞助 如果你觉得知识对您有帮助,可以请作者喝一杯咖啡 ☕️
微信收款码 支付宝收款码