코딩기록

NestJS, 타입스크립트 연습, swagger (노마드 코더) 본문

카테고리 없음

NestJS, 타입스크립트 연습, swagger (노마드 코더)

뽀짝코딩 2022. 5. 22. 15:46
728x90

 

1. @nestjs/cli 설치

npm i -g @nestjs/cli

2. 프로젝트 생성 명령어

nest new 프로젝트이름쓰기

위 명령어를 입력하면 설치 도중 어떤 패키지 매니저를 선택할지 묻는다. 나는 npm으로 선택했다.

 

 

운영 서버가 아닌 개발 단계에서는 npm run start:dev 명령어를 이용한다.

노드 express에서는 node app.js 명령어로 서버를 돌렸지만 nest는 npm run start:dev를 사용한다.

서버를 돌리고 크롬주소창에 localhost:3000 을 입력하면 서버가 구동 완료.

 

 

api 만들기

 controller 

https://www.youtube.com/watch?v=DbT5BYP60LY

 

 service 

https://www.youtube.com/watch?v=6ctDJO-UWP0 

 

 

 

movie관련 Rest api 만들기 (생성:g)

https://www.youtube.com/watch?v=4icmIlQ0x5w&t=102s 

1. 터미널에 nest를 치면 아래와 같이 나온다.

2. 터미널에 nest g co 명령어 입력 ( g: generate, co: controller)

입력하면 이름을 쓰라고 나오는데 그때 원하는 폴더 이름을 쓴다.

movies란 이름의 폴더가 만들어 졌고 그안에 2가지의 파일이 만들어졌다.

1. movies.controller.ts

2. movies.controller.spec.ts

그중 2번을 지우고 1번만 썼다.

 

 

 

 

 

 @: 데코레이터 

@Get,@Post, @Delete, @Patch, @Put

https://www.youtube.com/watch?v=4icmIlQ0x5w 

 

@Param, @Body

https://www.youtube.com/watch?v=pAd44fJAElk 

 


Swagger

1.설치

 npm install --save @nestjs/swagger swagger-ui-express

main.ts에다가 setupSwagger라고 따로 만들었다.

 

 

 main.ts 

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { setupSwagger } from './swagger';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  setupSwagger(app);

  await app.listen(3000);
}
void bootstrap();

 

 

 swagger.ts 

import { INestApplication } from '@nestjs/common';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';

/*
 * Swagger 세팅
 *
 * @param {INestApplication} app
 */
export function setupSwagger(app: INestApplication): void {
  const options = new DocumentBuilder()
    .setTitle('NestJS Study API Docs')
    .setDescription('NestJS Study API description')
    .setVersion('1.0.0')
    .build();

  const document = SwaggerModule.createDocument(app, options);
  SwaggerModule.setup('api-docs', app, document);
}

 

 

 

 

참고

*swagger참고 (1번참고함)

1. https://jhyeok.com/nestjs-swagger/

2. https://popawaw.tistory.com/183 

 

 

https://wikidocs.net/148194

 

 

 

반응형
Comments