2022-06-28(화) TIL

황인호·2022년 6월 29일
0

TIL 모음

목록 보기
92/119

오늘해야할일들

  1. 면접준비하기 [완료]
  2. swagger 배우기 [완료]
  3. swagger 사용해서 api 작성하기 [완료]
  4. node.js api 작성하기 [완료]

swagger

일단 Swagger란?
Swagger 는 REST API를 설계, 빌드, 문서화 및 사용하는 데 도움이되는 OpenAPI 사양을 중심으로 구축된 오픈 소스 도구 세트입니다.

왜 사용할까?

  • 적용하기 쉽다
    => 코드 몇 줄만 추가하면 만들수있다.

  • 테스트 할 수 있는 UI를 제공한다.

  • 안전한 협업
    => API에 대한 효과적인 협업을 위한 조직 및 팀 관리
    협업자와 소통하고 미해결 문제를 추적하기 위한 실시간 댓글
    협업 워크플로에 대한 엄격한 제어를 위한 분기, 비교 및 병합

  • 호스팅된 대화형 API 문서
    => Swagger UI 문서 자동 생성
    문서화 프로세스를 계속하기 위해 OAS 정의 가져오기 및 호스트
    기본 제공 권한 및 사용자 역할로 API 문서에 대한 액세스 관리
    여러 API 문서 버전을 유지 관리하고 업데이트하기 위한 버전관리

이런식으로 내가 만드려고하는 API의 URI를 미리 작성하고 성공하였을때 HTTP 코드 응답값과 응답할때 어떤 객체와 데이터를 전달할지를 미리 정할수 있다.

어떻게 사용할 수 있을까??
아래 명령어를 이용해서 Swagger 사용에 필요한 모듈을 설치한다.

npm i swagger-jsdoc swagger-ui-express --save-dev
  • swagger-ui-express : API 문서 UI 렌더링을 위한 패키지
  • swagger-jsdoc : Swagger 태그 주석을 추가해 API 문서화를 위한 패키지

swaggerDefinition 구성 요소

openapi : 사용하는 Open API의 버전
info: (Optional) API에 필요한 정보
title: API 제목
version: API 버전
description: API 상세정보
servers: API에 대한 기본 URL을 정의하며, 배열로 여러 URL 정의 가능 (host, basePath 이용하는 방법도 있음)
components: (Optional) 모든 API에 사용할 공통 컴포넌트
schemes: (Optional) 가능한 통신 방식 ex) ["http"], ["https"], ["http", "https"]
defomotopms: (Optional) DB 모델 정의
apis: files containing annotations as above

이번에 진행하는 사이드 프로젝트에 적용해보려고한다!!!

참고링크 : https://doqtqu.tistory.com/283
참고링크 : https://any-ting.tistory.com/105

profile
성장중인 백엔드 개발자!!

0개의 댓글