NestJSでDTO(データ転送用オブジェクト)を使用しCRUD操作を行ってみる
検証ライブラリーをインストール npm install class-validator --save これは、見出しの通りPOST時に検証してくるライブラリー。 デコレータおよび非デコレータ ベースの検証の使用を許可します。内部的には、 validator.jsを使用して検証を実行します。Class-validator は、ブラウザと node.js プラットフォームの両方で動作します。 ちなみにバージョンは"class-validator": "^0.14.0"←の通り。 データ転送オブジェクトを作成する データ転送オブジェクト (DTO)とは アプリケーションで受信するデータ用に適切なデータ構造を作成、検証しやすくするもの。 DTO を使うことで、リクエスト本文から抽出されるオブジェクトの形状を指定でき、検証の組み込みが容易になるとのこと。 ちなみにDTOは英語名(Data Transfer Object)と日本語読みの略が一致した稀有な例。 DTO をセットアップする src/sample/dtoにcreate-sample.dto.tsを作成する。ファイルの内容は下記の通り。 import { IsBoolean, IsString } from 'class-validator'; export class CreateSampleDTO { @IsString() firstName: string; @IsString() lastName: string; @IsBoolean() isActive: boolean; } 上記でフィールドのデータ型が stringorboolean型であるかを確認している。 それぞれのファイルにDTOを読み込む ファイルのインポートは割愛する。 sample.controller.ts create() { return this.sService.createSample(); } ↓に変更する。 create(@Body() createSampleDTO: CreateSampleDTO): Promise<Sample> { return this.sService.createSample(createSampleDTO); } sample.service.ts public async createSample(): Promise<Sample> { return await this....