본문 바로가기

분류 전체보기

(115)
10. REST API - DTO(Data Transfer Obejct) AND Validation (2) 읽기전용으로 하고 필수값은 되지 않도록 한다.왜냐하면 title, year, genres 속성(property) 중 title,year만 수정할 수도 있기 때문이다. updateData 타입은 UpdateMovieDto 준다. @IsOptional 은 class-validator에서 제공하는 유효성 검사 데코레이터(Decorator)로, 해당 속성이 요청에서 없어도 검증 에러를 발생시키지 않도록 허용할 때 사용된다.데코레이터 조합의미@IsString()값이 반드시 있어야 하고 문자열이어야 함@IsOptional() @IsString값이 없으면 통과, 있으면 문자열이어야 함
09. REST API - DTO(Data Transfer Obejct) AND Validation (1) validatior를 적용하기 위해 class-validator, class-transformer 라이브러리를 설치한다. main.ts 파일에 추가한 ValidationPipe와 Typescript를 활용한 타입으로 유효성 검사를 하기 위해 Dto(Data Transfer Obejct) 객체를 생성한다.class-validator를 임포트한 후 유효성을 체크할 속성(Property)에 @IsString, @IsNumber 데코레이터(Decorator)를 설정한다. main.ts 파일에서 ValidationPipe 옵션 중 whitelist를 true로 하게 되면 DTO에 정의되지 않은 프로퍼티는 자동으로 제거된다.예를들어, DTO에는 title, year, genres 속..
08. REST API - Movies Service (2)
07. REST API - Movies Service (1) 터미널에서 nest 명령어를 실행하면NestJS CLI(Command Line Interfece)에는 generate(생성) 명령어가 있는데 nest g s 명령어를 실행하면 명칭을 무엇으로 할건지 나오는데movies라고 입력 후 엔터를 누르면 해당 파일이 생성된다. app.module.ts 파일을 보면 providers에 moviesService가 생겨난것을 확인할 수 있다. movie.entity.tsexport class Movie{ id:number; title:string; year:number; genres:string[];} movies.controller.tsimport { Body, Controller, Delete, Get, Param, Patch,..
06. REST API - Http Decorator @Get, @Post @Patch @Delete - HTTP 메소드에 해당하는 데코레이터- 이때, @Query(), @Body(), @Param()과 같은 데코레이터와 같이 사용할 수 있다. : @Query() -> 쿼리 스트링 : @Body() -> 요청의 Body 부분 인출 : @Param() -> URL 인자 인출 ⬇Controller에 Get 요청으로 /movies/search 요청을 할 수 있도록 추가했다고 하더라도코드 순서상으로 /movies/:id 로 응답하게 되기 때문에 순서를 바꿔줘야 한다!!!
05. REST API - Movies Contorller 터미널에서 nest 명령어를 실행하면 generate(생성)이 보일텐데 터미널을 통해 NestJS의 관한 것을 생성할 수 있다. Controller를 생성하고자 하는데 명령어를 확인할때 nest 명령어를 실행하면 nest g co 라는걸 확인할 수 있는데nest g co 명령어를 실행하면 Controller 이름을 묻는데 Movie로 입력을 하게 되면src 폴더 하위에 해당 Controller가 생성되는걸 확인할 수 있으며 app.modules.ts 파일에 MoviesController가 import가 된다. spec 파일은 테스트 파일이기 때문에 삭제한다.@Controller 인자 부분이 url의 Entry Point를 컨트롤 한다.
04. NestJS - Services NestJS는 컨트롤러를 비즈니스 로직이랑 구분 짓고 싶어한다.Controller는 url를 가져오는 역할을 할 뿐이다.그런데 나머지 비즈니스 로직은 서비스로 가게 된다.
03. NestJs 구조 - Controllers