Nestjs 学习系列基础篇4 - Controller 与 HTTP接口实现
- Controller的作用
- DTO 的作用
- 实现完整的HTTP接口定义
Controller 概念
Controllers are responsible for handling incoming requests and returning responses to the client.
负责处理输入的request 请求并向客户端进行相应的。
MVC 模型
三层结构
DTO 的概念
数据传输对象(DTO)(Data Transfer Object),是一种设计模式之间传输数据的软件应用系统。数据传输目标往往是数据访问对象从数据库中检索数据。数据传输对象与数据交互对象或数据访问对象之间的差异是一个以不具有任何行为除了存储和检索的数据(访问和存取器)。
项目中的应用
src/user/dto/create-user.dto.ts
import { ApiProperty } from '@nestjs/swagger';
import { IsEmail, IsNotEmpty, Length, Matches } from 'class-validator';
export class CreateUserDto {
@ApiProperty({ example: '18759112345' })
readonly phone: string;
@ApiProperty({ example: 'dome' })
name: string;
@ApiProperty({ example: '123456' })
passowrd: string;
@ApiProperty({ example: '1@1.com' })
email: string;
}
src/user/user.controller.ts
...
@Controller('users')
@ApiTags('用户管理')
export class UserController {
...
@ApiResponse({
status: HttpStatus.CREATED,
type: CreateUserDto,
})
@ApiBearerAuth()
create(@Body() createUserDto: CreateUserDto) {
return this.userService.create(createUserDto);
}
...
}
项目仓库地址
==注意:基础篇的的代码在 base 分支下==