{
  "$type": "site.standard.document",
  "canonicalUrl": "https://blog.nove-b.dev//posts/do-crud-dto-nestjs",
  "path": "/posts/do-crud-dto-nestjs",
  "publishedAt": "2023-03-22T00:00:00.000Z",
  "site": "at://did:plc:2atly2y5kfyjcj5zap6pv4wd/site.standard.publication/3mmxeqr2tcb2k",
  "tags": [
    "crud",
    "dto",
    "nestjs",
    "データ転送用オブジェクト"
  ],
  "textContent": "検証ライブラリーをインストール\n\nこれは、見出しの通りPOST時に検証してくるライブラリー。\n\n> デコレータおよび非デコレータ ベースの検証の使用を許可します。内部的には、validator.jsを使用して検証を実行します。Class-validator は、ブラウザと node.js プラットフォームの両方で動作します。\n\nちなみにバージョンは\"class-validator\": \"^0.14.0\"←の通り。\n\nデータ転送オブジェクトを作成する\n\nデータ転送オブジェクト (DTO)とは\n\nアプリケーションで受信するデータ用に適切なデータ構造を作成、検証しやすくするもの。\nDTO\nを使うことで、リクエスト本文から抽出されるオブジェクトの形状を指定でき、検証の組み込みが容易になるとのこと。\n\nちなみにDTOは英語名(Data Transfer Object)と日本語読みの略が一致した稀有な例。\n\nDTO をセットアップする\n\nsrc/sample/dtoにcreate-sample.dto.tsを作成する。ファイルの内容は下記の通り。\n\n上記でフィールドのデータ型が stringorboolean型であるかを確認している。\n\nそれぞれのファイルにDTOを読み込む\n\nファイルのインポートは割愛する。\n\nsample.controller.ts\n\n↓に変更する。\n\nsample.service.ts\n\n↓に変更する。\n\n実際にポストしてみる\n\nデータの作成ができていることを確認できた。\n\nちなみに\n\nBoolean指定のisActiveをstringで送ったらfalseで登録された。\n\nついでにstring指定の箇所にnumberを送ったらそのままnumberで登録された。\n\nつまりclass-validatorが動いてない。\n\nこれは別で調査する。",
  "title": "NestJSでDTO(データ転送用オブジェクト)を使用しCRUD操作を行ってみる"
}