1.接口tags分类,接口说明
@ApiTags('小狗管理')
@ApiOperation({
summary: '添加小狗',
})
2.接口书写默认值和长度限制
@ApiProperty({
description: '小狗名称',
minLength: 2,
maxLength: 32,
example: '小狗狗',
})
name: string;
@ApiProperty({
description: '小狗名称',
minimum: 1,
maximum: 100,
example: 1,
})
age: number;
3.get请求的参数
@ApiQuery({
name: 'page',
description: '页码',
type: Number,
example: 1,
})
@ApiQuery({
name: 'pageSize',
description: '条数',
type: Number,
example: 15,
})
4.get请求拼接路径请求id
@ApiParam({
name: 'id',
description: '拼接在路径后面的路径',
example: 1,
})
5.fineAll,查询所有数据,分页数据skip,take
//Controller代码
@Get()
// new DefaultValuePipe(1)默认1, ParseIntPipe参数为int
findAll(
@Query('current', new DefaultValuePipe(1), ParseIntPipe) current: number,
@Query('pageSize', new DefaultValuePipe(10), ParseIntPipe) pageSize: number,
) {
return this.userTestService.findAll(current, pageSize);
}
//service代码
findAll(current = 1, pageSize = 10) {
console.log(current);
return this.usersRepository.findAndCount({
skip: (current - 1) * pageSize,
take: pageSize,
});
}
6.根据id去查询
//Controller代码
@Get(':id')
findOne(@Param('id', ParseIntPipe) id: number) {
return this.userTestService.findOne(+id);
}
//service代码
findOne(id: number) {
// return this.usersRepository.findOneBy({ id });
// findOne更加灵活
return this.usersRepository.findOne({ where: { id } });
}
7.根据id删除
//Controller代码
@Delete(':id')
async remove(@Param('id') id: number) {
const userTest = this.userTestService.findOne(id);
if (userTest === null) {
return 'delete error';
}
const res = await this.userTestService.remove(+id);
if (res.affected > 0) return 'delete success';
return 'error';
}
//service代码
remove(id: number) {
return this.usersRepository.delete(id);
}
8.新增
//Dto代码
export class CreateUserTestDto {
firstName: string;
lastName: string;
isActive: boolean;
}
//service代码
async create(@Body() createUserTestDto: CreateUserTestDto) {
const res = await this.usersRepository.insert(createUserTestDto);
if (res.generatedMaps.length > 0) return 'create success';
return 'create error';
}
apifox测试页面