# fastApi-app-test **Repository Path**: dkhuang/fast-api-app-test ## Basic Information - **Project Name**: fastApi-app-test - **Description**: fastApi-app-test 使用 python web接口开发 FastAPI是基于Python 3.6+类型的现代、快速(高性能)的Web框架,用于构建API。它使用类型提示来减少错误并提高开发效率。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-06 - **Last Updated**: 2025-07-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 企业混合App后端API - FastAPI实现 基于FastAPI构建的企业移动办公平台后端服务,完全按照README_API.md文档规范实现。 ## 🚀 项目特性 - ✅ **完整的API接口**: 实现了文档中定义的所有17个核心接口 - ✅ **标准化响应格式**: 统一的JSON响应结构 - ✅ **JWT认证机制**: 安全的用户认证和授权 - ✅ **模块化架构**: 清晰的代码组织结构 - ✅ **数据库支持**: SQLite/MySQL双数据库支持 - ✅ **文件上传**: 支持头像和文档上传 - ✅ **缓存策略**: Redis缓存支持 - ✅ **错误处理**: 完善的异常处理机制 - ✅ **API文档**: 自动生成的Swagger文档 ## 📁 项目结构 ``` fastApi-app-test/ ├── main.py # 主应用入口 ├── config.py # 配置管理 ├── database.py # 数据库配置 ├── requirements.txt # 依赖包 ├── .env.example # 环境变量示例 ├── models/ # 数据模型 │ ├── __init__.py │ ├── common.py # 通用模型 │ ├── user.py # 用户模型 │ ├── auth.py # 认证模型 │ ├── app.py # 应用模型 │ └── message.py # 消息模型 ├── routers/ # API路由 │ ├── __init__.py │ ├── auth.py # 认证接口 │ ├── system.py # 系统接口 │ ├── home.py # 首页接口 │ ├── apps.py # 应用接口 │ ├── workspace.py # 工作台接口 │ ├── messages.py # 消息接口 │ ├── user.py # 用户接口 │ └── upload.py # 文件上传接口 └── services/ # 业务服务 ├── __init__.py ├── auth_service.py # 认证服务 ├── user_service.py # 用户服务 ├── app_service.py # 应用服务 ├── message_service.py # 消息服务 ├── home_service.py # 首页服务 ├── workspace_service.py # 工作台服务 └── upload_service.py # 文件上传服务 ``` ## 🛠️ 快速开始 ### 1. 环境要求 - Python 3.8+ - pip 或 poetry ### 2. 安装依赖 ```bash # 克隆项目 cd fastApi-app-test # 安装依赖 pip install -r requirements.txt ``` ### 3. 配置环境 ```bash # 复制环境变量文件 cp .env.example .env # 编辑配置文件 nano .env ``` ### 4. 启动服务 ```bash # 开发模式启动 python main.py # 或使用uvicorn uvicorn main:app --host 0.0.0.0 --port 8080 --reload ``` ### 5. 访问服务 - **API文档**: http://localhost:8080/docs - **ReDoc文档**: http://localhost:8080/redoc - **服务状态**: http://localhost:8080/api/system/ping ## 📋 API接口列表 ### 认证接口 (3个) - `POST /api/auth/login` - 用户登录 - `POST /api/auth/refresh` - 刷新Token - `POST /api/auth/logout` - 用户登出 ### 系统接口 (3个) - `GET /api/system/ping` - 连接测试 - `GET /api/system/info` - 服务器信息 - `GET /api/system/health` - 健康检查 ### 首页接口 (1个) - `GET /api/home/info` - 首页信息(包含轮播图和企业新闻) ### 应用接口 (1个) - `GET /api/apps/list` - 应用列表(按分类组织) ### 工作台接口 (1个) - `GET /api/workspace/apps` - 工作台常用应用 ### 消息接口 (4个) - `GET /api/messages/list` - 消息列表 - `POST /api/messages/read` - 标记已读 - `GET /api/messages/unread-count` - 未读数量 - `DELETE /api/messages/{id}` - 删除消息 ### 用户接口 (4个) - `GET /api/user/profile` - 用户信息 - `PUT /api/user/profile` - 更新用户信息 - `GET /api/user/settings` - 用户设置 - `PUT /api/user/settings` - 更新设置 ### 文件上传接口 (3个) - `POST /api/upload/avatar` - 头像上传 - `POST /api/upload/files` - 文件上传 - `DELETE /api/upload/files/{id}` - 删除文件 ## 📋 API数据结构 ### 首页接口数据格式 `GET /api/home/info` 返回格式: ```json { "success": true, "message": "获取首页信息成功", "data": { "banners": [ { "id": 1, "title": "企业文化建设", "image": "https://example.com/banner1.jpg", "url": "/news/1", "sort_order": 1 } ], "news": [ { "id": 1, "title": "公司荣获行业优秀企业奖", "summary": "在2024年度行业评选中,我公司凭借优异表现荣获优秀企业奖", "content": "详细内容...", "author": "企业宣传部", "publishTime": "2024-01-15T10:00:00Z", "readCount": 156, "category": "企业荣誉", "image": "https://example.com/news1.jpg" } ] }, "timestamp": 1751803456 } ``` ### 应用接口数据格式 `GET /api/apps/list` 返回格式: ```json { "success": true, "message": "获取应用列表成功", "data": { "categories": [ { "title": "办公应用", "apps": [ { "name": "考勤打卡", "icon": "access_time", "color": "0xFF3366CC" } ] } ] } } ``` ### 工作台接口数据格式 `GET /api/workspace/apps` 返回格式: ```json { "success": true, "message": "获取成功", "data": { "favoriteApps": [ { "id": 1, "name": "日程管理", "icon": "calendar_today", "color": "0xFF3366CC", "url": "https://calendar.example.com", "description": "管理日程安排", "sort": 1 } ] } } ``` 详细的API数据结构说明请参考:[API_STRUCTURE.md](./API_STRUCTURE.md) ## 🧪 测试指南 ### 1. 使用内置测试账号 ```json { "username": "admin", "password": "admin123" } ``` 或 ```json { "username": "user1", "password": "user123" } ``` ### 2. API测试流程 ```bash # 1. 测试服务连接 curl http://localhost:8080/api/system/ping # 2. 用户登录 curl -X POST http://localhost:8080/api/auth/login \ -H "Content-Type: application/json" \ -d '{"username": "admin", "password": "admin123"}' # 3. 使用Token访问接口 curl -X GET http://localhost:8080/api/user/profile \ -H "Authorization: Bearer YOUR_TOKEN" ``` ## 🔧 配置说明 ### 环境变量配置 | 变量名 | 说明 | 默认值 | |--------|------|--------| | `APP_NAME` | 应用名称 | 企业混合App后端API | | `DEBUG` | 调试模式 | false | | `SECRET_KEY` | JWT密钥 | 需要修改 | | `DATABASE_URL` | 数据库连接 | SQLite | | `REDIS_URL` | Redis连接 | redis://localhost:6379/0 | ### 数据库配置 支持SQLite和MySQL两种数据库: ```bash # SQLite (默认) DATABASE_URL=sqlite:///./enterprise_app.db # MySQL DATABASE_URL=mysql+pymysql://user:password@localhost:3306/enterprise_app ``` ## 🚀 部署指南 ### Docker部署 ```dockerfile FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 8080 CMD ["python", "main.py"] ``` ### 生产环境配置 1. 修改SECRET_KEY为强密码 2. 配置生产数据库 3. 启用HTTPS 4. 配置反向代理 5. 设置日志收集 ## 📝 开发说明 ### 添加新接口 1. 在`models/`中定义数据模型 2. 在`services/`中实现业务逻辑 3. 在`routers/`中定义API路由 4. 在`main.py`中注册路由 ### 数据库迁移 ```bash # 生成迁移文件 alembic revision --autogenerate -m "描述" # 执行迁移 alembic upgrade head ``` ## 🤝 贡献指南 1. Fork 项目 2. 创建特性分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 📄 许可证 MIT License ## 📞 技术支持 如有问题,请提交Issue或联系开发团队。 --- **注意**: 本项目严格按照`Documents/docs/README_API.md`文档规范实现,确保前后端数据格式完全匹配。