# fastapi-starter **Repository Path**: liulei152/fastapi-starter ## Basic Information - **Project Name**: fastapi-starter - **Description**: 一个现代化、开箱即用的 FastAPI 项目骨架,旨在帮你快速搭建高性能的 Python Web 服务或 API 接口。告别繁琐的初始化配置,专注于业务逻辑的开发。 - **Primary Language**: Python - **License**: MIT-0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-26 - **Last Updated**: 2026-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastAPI Starter
[English](./README.md) | **中文**
## 简介 一个现代化、开箱即用的 FastAPI 项目骨架,旨在帮你快速搭建高性能的 Python Web 服务或 API 接口。告别繁琐的初始化配置,专注于业务逻辑的开发。 ## 特性 - 🚀 基于 FastAPI 构建,支持异步和高性能 - 📦 标准化的项目结构,易于维护和扩展 - 🔧 完整的配置管理系统 - 🛡️ 内置 CORS 支持和安全配置 - 📝 自动生成 API 文档 (Swagger UI & ReDoc) - 🧪 完整的测试套件和覆盖率报告 - 🐳 Docker 容器化支持 - 📊 请求日志记录和性能监控 - ⚡ 使用 uv 进行高速依赖管理 ## 技术栈 - **FastAPI** - 现代、快速的 Python Web 框架 - **Pydantic** - 数据验证和设置管理 - **Uvicorn** - ASGI 服务器 - **uv** - 极速的 Python 包管理器 - **pytest** - 测试框架 - **Docker** - 容器化部署 ## 项目结构 ``` fastapi-starter/ ├── app/ # 应用核心代码 │ ├── __init__.py │ ├── main.py # FastAPI应用入口 │ ├── config/ # 配置管理 │ │ └── settings.py │ ├── api/ # API路由 │ │ └── routes/ │ │ └── general.py │ ├── models/ # 数据模型 │ │ └── schemas.py │ └── middleware/ # 中间件 │ └── logging.py ├── tests/ # 测试代码 │ └── test_main.py ├── docs/ # 文档 ├── Dockerfile └── docker-compose.yml ``` ## 快速开始 ### 1. 安装依赖 ```bash # 使用 uv 安装项目依赖(推荐) uv pip install -e . # 安装开发依赖(包括测试工具) uv pip install -e ".[test]" # 或者使用传统的 pip(不推荐) pip install -e . pip install -e ".[test]" ``` ### 2. 运行应用 ```bash # 开发模式(带热重载) uvicorn app.main:app --reload # 或者直接运行 python -m app.main ``` ### 3. 访问应用 - 应用主页: http://localhost:8000 - API文档 (Swagger UI): http://localhost:8000/docs - API文档 (ReDoc): http://localhost:8000/redoc - 健康检查: http://localhost:8000/health ## API 端点 ### 通用端点 - `GET /` - 应用根路径,返回欢迎信息 - `GET /health` - 健康检查端点 - `GET /api/v1/health` - API健康检查 - `GET /api/v1/info` - 应用信息 ## 测试 ```bash # 运行所有测试 pytest # 运行测试并生成覆盖率报告 pytest --cov=app # 详细的测试输出 pytest -v # 运行特定测试文件 pytest tests/test_main.py ``` ## 配置 应用配置位于 `app/config/settings.py`,支持通过环境变量覆盖: ```bash # 设置环境变量 export APP_NAME="My App" export DEBUG=false export PORT=8080 ``` ## Docker 部署 ```bash # 构建镜像 docker build -t fastapi-starter . # 运行容器 docker run -p 8000:8000 fastapi-starter # 使用 docker-compose docker-compose up -d ``` ## 开发指南 ### 使用 uv 管理开发环境 ```bash # 创建虚拟环境 uv venv # 激活虚拟环境 source .venv/bin/activate # Linux/Mac .venv\Scripts\activate # Windows # 安装依赖 uv pip install -e ".[test]" # 运行测试 pytest # 运行应用 uvicorn app.main:app --reload ``` ### 添加新的API路由 1. 在 `app/api/routes/` 目录下创建新的路由文件 2. 定义路由和端点处理函数 3. 在 `app/main.py` 中注册路由 ### 添加数据模型 1. 在 `app/models/schemas.py` 中定义 Pydantic模型 2. 在路由中使用模型进行数据验证 ### 添加中间件 1. 在 `app/middleware/`目录下创建中间件文件 2. 在 `app/main.py` 中注册中间件 ## uv 最佳实践 ### 依赖管理 - 使用 `uv pip install`而非 `pip install`获得更快的安装速度 - 使用 `uv.lock` 文件锁定依赖版本确保可重现的构建 - 定期使用 `uv pip list --outdated`检查依赖更新 ### 性能优化 - uv 的依赖解析速度比 pip快 10-100倍 - 使用 `uv pip install --no-cache`跳过缓存获得最新版本 - 在 CI/CD 环境中使用 `uv pip install --system`避免虚拟环境 ### 故障排除 常见问题及解决方案: 1. **依赖解析冲突**:使用 `uv pip install --resolution=lowest-direct` 2. **缓存问题**:使用 `uv pip cache clean`清理缓存 3. **权限问题**:确保有足够的写入权限或使用 `--user`标志 ## 联系 如需联系作者,请通过以下方式: - 姓名: shenyi - 邮箱: 1245332635@qq.com ## 贡献 欢迎提交 Issue 和 Pull Request! 1. Fork 本仓库 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 许可证 本项目采用 MIT许可证 - 查看 [LICENSE](LICENSE) 文件了解详情