学习API
一个使用NestJS框架构建的RESTful API服务,遵循干净的架构原则和最佳实践。
特性
- 🚀 NestJS框架 -现代、可扩展的Node.js框架
- 📚 Swagger文档 -自动生成的API文档
- 🏥 健康检查 -应用程序运行状况监视端点
- 👥 用户管理 -为用户完成CRUD操作
- ✅ 验证 -使用类验证器请求验证
- 🧪 测试 -使用Jest进行单元和E2E测试
- 🔧 TypeScript -具有严格类型的完全TypeScript支持
- 📦 模块化架构 -干净、可维护的代码结构
快速开始
先决条件
- Node.js(v16或更高版本)
- npm或纱线
安装
- 克隆存储库:
git clone
cd learnflo-api- 安装依赖项:
npm install- 设置环境变量:
cp env.example .env
# Edit .env with your configuration- 启动开发服务器:
npm run start:devAPI将于 http://localhost:3000
API文档
服务器运行后,您可以在以下位置访问Swagger文档:
- Swagger 用户界面:
http://localhost:3000/api/docs
可用端点
健康检查端点
GET /api/v1/health-获取应用程序运行状况GET /api/v1/health/ready-检查应用程序是否准备就绪GET /api/v1/health/alive-检查应用程序是否处于活动状态GET /api/v1/health/admin/test-管理员测试端点
用户管理端点
POST /api/v1/users-创建新用户GET /api/v1/users-获取所有用户(带分页)GET /api/v1/users/:id-按ID获取用户PUT /api/v1/users/:id-按ID更新用户DELETE /api/v1/users/:id-按ID删除用户GET /api/v1/users/admin/test-管理员测试端点
项目结构
src/
├── common/ # Shared code across modules
│ ├── dto/ # Common DTOs
│ └── types/ # Common TypeScript types
├── health/ # Health check module
│ ├── health.controller.ts
│ ├── health.service.ts
│ └── health.module.ts
├── users/ # User management module
│ ├── dto/ # User-specific DTOs
│ ├── types/ # User types and interfaces
│ ├── users.controller.ts
│ ├── users.service.ts
│ └── users.module.ts
├── app.module.ts # Main application module
└── main.ts # Application entry point脚本
npm run start-启动应用程序npm run start:dev-以热重新加载的开发模式启动应用程序npm run start:debug-在调试模式下启动应用程序npm run start:prod-以生产模式启动应用程序npm run build-构建应用程序npm run test-运行单元测试npm run test:watch-在监视模式下运行单元测试npm run test:e2e-运行端到端测试npm run test:cov-运行覆盖率测试npm run lint-运行ESLintnpm run format-使用Prettier格式化代码
测试
单元测试
npm run testE2E测试
npm run test:e2e测试覆盖率
npm run test:cov环境变量
创建一个 .env 根目录中的文件,包含以下变量:
# Application Configuration
NODE_ENV=development
PORT=3000
APP_VERSION=1.0.0发展
代码的风格
此项目遵循后端编码指南,包括:
- TypeScript严格类型
- 清洁建筑原则
- SOLID 原则
- 综合测试
- JSDoc文件
添加新模块
- 在中创建新的模块目录
src/ - 创建模块文件(例如。,
feature.module.ts) - 创建控制器和服务文件
- 根据需要添加DTO和类型
- 将模块导入
app.module.ts - 为新功能添加测试
部署
生产建设
npm run build
npm run start:prodDocker(未来)
# Build the Docker image
docker build -t learnflo-api .
# Run the container
docker run -p 3000:3000 learnflo-api贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加新功能的测试
- 确保所有测试通过
- 提交拉取请求
许可证
该项目根据MIT许可证获得许可。
支持
如需支持和问题,请在存储库中打开问题。
