다양한 Dev./기본 정리

2023.09.26 - Swagger(Nest.js)

2023. 9. 26. 11:16

01. Swagger

  • swagger란
    • RESTful 웹 서비스를 문서화하고 테스트하기 위한 강력한 도구와 프레임워크
    • 백엔드 개발자와 프론트 엔드 개발자 간의 협업을 용이하게 하며 API 엔드포인트, 요청 및 응답 형식, 매개변수, 보안 등에 대한 자세한 문서를 생성하는 데 도움을 준다.
    • API 개발 및 관리가 훨씬 효율적이며, BE와 FE 협업을 간소화 할 수 있다.

02. 주요 기능

  1. API 문서 생성: API에 대한 자동화된 문서를 생성할 수 있다. 문서에는 엔드포인트, HTTP 메서드(GET, POST, PUT, DELETE 등), 요청 및 응답 형식, 매개변수, 예제 요청 및 응답 등이 자세하게 나와 있다.
  2. API 테스트: Swagger UI를 통해 API를 테스트할 수 있다. 사용자는 문서에서 제공하는 매개 변수를 설정하고 API를 호출하여 실제 동작을 확인할 수 있다.
  3. API 보안: Swagger를 사용하여 API에 보안 기능을 추가하고 OAuth 또는 API 키와 같은 인증 및 권한 부여 메커니즘을 구현할 수 있다.
  4. 코드 생성: Swagger 문서를 기반으로 클라이언트 및 서버 코드를 자동으로 생성할 수 있다. 다양한 프로그래밍 언어와 프레임워크에 대한 지원이 있다.
  5. API 버전 관리: Swagger를 통해 API 버전 관리도 용이하게 할 수 있다.

03. 사용법

  • Swagger 모듈 설치
npm install --save @nestjs/swagger swagger-ui-express
  • Swagger 미들웨어 추가
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';

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

  // Swagger 설정
  const config = new DocumentBuilder()
    .setTitle('Your API')
    .setDescription('API description')
    .setVersion('1.0')
    .addTag('api')
    .build();
  const document = SwaggerModule.createDocument(app, config);
  SwaggerModule.setup('api', app, document);

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

==> DocumentBuilder를 사용하여 Swagger 문서의 기본 설정을 구성, SwaggerModule.createDocument를 통해 문서를 생성, SwaggerModule.setup으로 Swagger UI를 설정

  • 애플리케이션 실행: Swagger 설정을 추가하고 모든 준비가 완료되었으면 애플리케이션을 실행
  • Swagger UI 접근: 주소 뒤에 /swagger를 붙이면 문서를 확인 가능하다.

04. 작성 방법

 

2023.09.30 - Swagger(Nest.js) 작성 방법

01. 데코레이터 @ApiProperty() 클래스의 속성을 문서화할 때 사용. 속성에 대한 설명, 예제 값 및 다른 정보를 제공할 수 있다. import { ApiProperty } from '@nestjs/swagger'; export class CreateCatDto { @ApiProperty() name

yoonsoo-space.tistory.com

 

'다양한 Dev. > 기본 정리' 카테고리의 다른 글

2024.01.07 - OOP(Object-Oriented Programming)란?  (0) 2024.01.07
2023.09.30 - Swagger(Nest.js) 작성 방법  (0) 2023.09.30
2023.07.29 - 쿠키와 세션의 차이점  (0) 2023.07.29
2023.07.28 - Docker  (0) 2023.07.28
2023.06.07 - 명령어 정리 (feat. cmd, vi)  (0) 2023.06.07
'다양한 Dev./기본 정리' 카테고리의 다른 글
  • 2024.01.07 - OOP(Object-Oriented Programming)란?
  • 2023.09.30 - Swagger(Nest.js) 작성 방법
  • 2023.07.29 - 쿠키와 세션의 차이점
  • 2023.07.28 - Docker
Yoonsoo
Yoonsoo
Yoonsoo
YS 개발 블로그
Yoonsoo
전체
오늘
어제
  • 분류 전체보기
    • Java Dev.
      • Java 기본 정리
    • Self Dev.
      • TIL
      • WIL
    • JavaScript Dev.
      • Node.js
      • Javascript
      • 웹개발 기초 정리
      • Nest.js
      • Tensorflow.js
      • TypeScript
      • TypeORM
    • 다양한 Dev.
      • 기본 정리
      • cs 지식 정리
    • CI CD

블로그 메뉴

    공지사항

    인기 글

    태그

    최근 댓글

    최근 글

    hELLO · Designed By 정상우.
    Yoonsoo
    2023.09.26 - Swagger(Nest.js)
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.