RESTful API服务

一个基于NestJS框架构建的RESTful API服务,提供用户管理、健康检查等功能,适用于后端开发。

  • by tomibudis
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 tomibudis/learnflo-mcp-be-api

使用说明

学习API

一个使用NestJS框架构建的RESTful API服务,遵循干净的架构原则和最佳实践。

特性

  • 🚀 NestJS框架 -现代、可扩展的Node.js框架
  • 📚 Swagger文档 -自动生成的API文档
  • 🏥 健康检查 -应用程序运行状况监视端点
  • 👥 用户管理 -为用户完成CRUD操作
  • ✅ 验证 -使用类验证器请求验证
  • 🧪 测试 -使用Jest进行单元和E2E测试
  • 🔧 TypeScript -具有严格类型的完全TypeScript支持
  • 📦 模块化架构 -干净、可维护的代码结构

快速开始

先决条件

  • Node.js(v16或更高版本)
  • npm或纱线

安装

  1. 克隆存储库:
git clone <repository-url>
cd learnflo-api
  1. 安装依赖项:
npm install
  1. 设置环境变量:
cp env.example .env
# Edit .env with your configuration
  1. 启动开发服务器:
npm run start:dev

API将于 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 -运行ESLint
  • npm run format -使用Prettier格式化代码

测试

单元测试

npm run test

E2E测试

npm run test:e2e

测试覆盖率

npm run test:cov

环境变量

创建一个 .env 根目录中的文件,包含以下变量:

# Application Configuration
NODE_ENV=development
PORT=3000
APP_VERSION=1.0.0

发展

代码的风格

此项目遵循后端编码指南,包括:

  • TypeScript严格类型
  • 清洁建筑原则
  • SOLID 原则
  • 综合测试
  • JSDoc文件

添加新模块

  1. 在中创建新的模块目录 src/
  2. 创建模块文件(例如。, feature.module.ts)
  3. 创建控制器和服务文件
  4. 根据需要添加DTO和类型
  5. 将模块导入 app.module.ts
  6. 为新功能添加测试

部署

生产建设

npm run build
npm run start:prod

Docker(未来)

# Build the Docker image
docker build -t learnflo-api .

# Run the container
docker run -p 3000:3000 learnflo-api

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加新功能的测试
  5. 确保所有测试通过
  6. 提交拉取请求

许可证

该项目根据MIT许可证获得许可。

支持

如需支持和问题,请在存储库中打开问题。