用ngx-starter-kit快速搭建REST APInestjsx/crudTypeORM完整实战教程【免费下载链接】ngx-starter-kit:a: Angular :rocket: NestJS :monkey: Starter Kit项目地址: https://gitcode.com/gh_mirrors/ng/ngx-starter-kitngx-starter-kit是一款开源的 Angular NestJS 起步套件其中的 API 应用使用NestJS构建后端、TypeORM操作数据库、nestjsx/crud自动生成标准 REST API 接口帮你在几分钟内跑出一个带分页、参数校验和 Swagger 在线文档的完整 REST API 服务是新手学习 NestJS 后端的优秀实战项目。为什么选择 ngx-starter-kit 搭建后端从零写一个 REST API通常需要手写实体类、控制器、服务层、分页参数、错误处理……样板代码写到手软。而 ngx-starter-kit 把这些全都做好了✅开箱即用的 CRUD 抽象层继承一个基类控制器5 个标准接口列表、详情、新增、修改、删除直接可用✅TypeORM 已配置完毕实体注册、数据库连接PostgreSQL全部就绪✅内置 Swagger 文档启动后访问/docs即可在线调试接口✅全局参数校验基于 class-validator非法请求直接拒绝✅统一分页规范skip/take/order参数约定前端调用零学习成本技术栈速览能力使用的技术后端框架NestJS数据库 ORMTypeORMPostgreSQLREST 接口生成nestjsx/crud参数校验class-validator接口文档OpenAPI (Swagger)测试Jest SuperTest 完整技术栈说明可参考 API 应用自带的说明文档apps/api/README.md快速上手3 步启动你的 REST API第一步启动 PostgreSQL 数据库项目提供了 docker-compose 编排文件一条命令拉起数据库docker-compose up postgres编排配置位于仓库根目录的 docker-compose.yml。第二步安装依赖克隆项目后在工作区根目录执行git clone https://gitcode.com/gh_mirrors/ng/ngx-starter-kit npm install第三步启动 API 服务nx serve api启动成功后你将获得两个入口REST API 地址http://localhost:3000Swagger 在线文档http://localhost:3000/docs可直接在页面上点击调试接口服务端口、Swagger 装配、全局校验管道等启动逻辑都在入口文件 apps/api/src/main.ts 中值得新手通读一遍。nestjsx/crud TypeORM 如何配合工作1. 实体基类一个 UUID 主键搞定所有表所有实体都继承自 Base它只声明了一个uuid类型的主键自增列PrimaryGeneratedColumn(uuid) id?: string;这样每张表自动拥有唯一标识业务实体只需关心自己的字段。2. 用装饰器定义实体TypeORM class-validator 双生效以 User 实体 为例每个字段上同时挂了两组装饰器Column()/Index()—— TypeORM 负责建表和索引IsEmail()/IsNotEmpty()/Length()—— class-validator 负责入参校验IsEmail() IsNotEmpty() Index() Column() email: string;一个实体文件同时完成了数据库表结构和接口入参规则两件事这就是装饰器的威力 ✨。3. 继承 CrudController5 个 REST 接口零代码生成项目封装了抽象基类 CrudController内部已实现HTTP 方法路由功能GET/分页查询全部GET/:id按 ID 查详情POST/新增记录返回 201PUT/:id更新记录DELETE/:id删除记录配套的 CrudService 封装了 TypeORM Repository 的通用操作并统一抛出NotFoundException、BadRequestException等标准错误。业务控制器只需继承 注入服务例如 ProjectController 继承CrudControllerProject后立即获得 project 表的完整 CRUD 能力然后只需追加自己的个性化接口如/own查自己的项目、/search高级搜索并叠加Roles(RolesEnum.ADMIN)之类的权限装饰器即可。新增一张表4 步扩展你的 REST API假设要新增一张Article表流程非常清晰写实体参照 Project 实体 的写法用Entity()Column()定义字段继承Base获得 UUID 主键注册实体把新实体加入 CoreModule 中entities数组TypeORM 就会自动建表写控制器新建控制器继承CrudControllerArticle注入自己的 Service标准 CRUD 即刻生效在线验证重启后打开/docs新接口已经出现在 Swagger 页面中直接点 Try it out 测试 内置分页与参数校验前端最爱列表接口统一遵循分页约定规则定义在 PaginationParamstake每页条数默认 10最大 50skip偏移量默认 0order按任意字段升序ASC或降序DESC排序调用示例GET /project?take20skip0order[name]ASC返回{ items, total }结构。同时全局ValidationPipe开启了whitelist过滤未声明字段和forbidNonWhitelisted拒绝多余参数从入口就把脏数据挡在数据库之外 。关键文件导航说明路径服务启动入口Swagger / 校验管道apps/api/src/main.tsTypeORM 数据库配置apps/api/src/app/core/core.module.tsCRUD 控制器基类apps/api/src/app/core/crud/crud.controller.tsCRUD 服务基类apps/api/src/app/core/crud/crud.service.ts分页参数定义apps/api/src/app/core/crud/pagination-params.ts实体基类UUID 主键apps/api/src/app/core/entities/base.tsUser 实体示例apps/api/src/app/user/user.entity.tsProject 实体示例apps/api/src/app/project/project.entity.tsAPI 运行文档apps/api/README.md小结借助 ngx-starter-kitnestjsx/crud 负责生成标准 REST 接口、TypeORM 负责数据建模与访问两者配合让从 0 到可运行的 REST API缩短为三步起库、装包、nx serve api。对新手而言这套代码本身也是一份结构清晰的 NestJS 后端范本——控制器、服务、实体、拦截器、守卫各司其职照着它扩展自己的业务就是最快的学习路径 【免费下载链接】ngx-starter-kit:a: Angular :rocket: NestJS :monkey: Starter Kit项目地址: https://gitcode.com/gh_mirrors/ng/ngx-starter-kit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考