第05章 API開発
NestJS は REST API・GraphQL API の両方を簡単に構築でき、さらに Swagger を使ってドキュメント化できます。
5.1 REST API
コントローラーでルーティング
@Controller('users')
export class UsersController {
@Get()
findAll(): string {
return 'This action returns all users';
}
@Get(':id')
findOne(@Param('id') id: string): string {
return `This action returns user #${id}`;
}
@Post()
create(@Body() createUserDto: any): string {
return `This action adds a new user: ${createUserDto.name}`;
}
}
@Controller('users')→/usersをベースパスにする@Get(),@Post()などで HTTP メソッドに対応@Param(),@Body()でリクエストデータを取得
DTO(Data Transfer Object)
- データ受け渡し用クラス
class-validatorと併用して入力検証
import { IsString, IsEmail } from 'class-validator';
export class CreateUserDto {
@IsString()
name: string;
@IsEmail()
email: string;
}
@Post()
create(@Body() dto: CreateUserDto) {
return this.userService.create(dto);
}
➡️ ValidationPipe を有効化すれば、入力が自動チェックされる。