
오늘 한 일
app.js와 같은 경로에 swagger.js를 생성하고
yarn add swagger-ui-express swagger-jsdoc
import swaggerUi from 'swagger-ui-express';
import swaggerJsdoc from 'swagger-jsdoc';
export const options = {
swaggerDefinition: {
openapi: "3.0.0",
info: {
version: "1.0.0",
title: 'spa-resume',
description: "회원가입, 로그인을 사용하여 내 이력서 작성, 수정, 삭제하기",
},
servers: [{
url: "http://localhost:3022", // 로컬 호스트 요청
url: "~~~배포 URL" // 배포 요청
}]
},
apis: [
"./routes/*.js",
"app.js" //swagger 파일 연동
]
}
const specs = swaggerJsdoc(options);
export {swaggerUi, specs};
을 작성해준다.
그리고 app.js에서
import {swaggerUi, specs} from './swagger.js';
app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(specs));
으로 swagger을 연결해준다.
다른 글들은 js 파일을 새로 만들어서 기존 api를 연결하는 듯 했지만 나는 해설 영상에서 api가 있는 js 파일에 @swagger 주석처리를 직접 작성하시는 것을 보고 '오 편한데?'라는 생각으로 그 파일에 직통으로 작성했다. 그리고 분량을 보고 후회했다고 한다...

이것은 회원가입 api swagger... 회원가입 api뿐만 아니라 로그인, 내 정보 조회, 이력서 작성, 이력서 수정, 모든 이력서 조회, 상세 이력서 조회, 이력서 삭제까지 하니까 5시간이 걸렸다 ㅎ. 코드 보니 대략 400줄을 작성했다고 ^ㅠ^... 아무리 노가다를 좋아해도 5시간을 하니 머리가 어지럽다.
와중에 swagger은 극강의 예민함을 갖고 계셔서 띄어쓰기 하나 잘못했다가는 에러가 났다. ':' 안 써서 난 에러도 있었지만 대부분 칼럼 수가 다른 것과 맞지 않으니 수정하라는 영어의 향연이었다. 프리티어가 몹시 그리웠다... 프리티어 기능 확장 기원 1일차 시작
swagger을 다 작성하고 이제 배포까지 적용을 하려는데
안그래도 우분투 어려운데 더 어렵게 만들어주는 우리 git ^^...
내가 한 일이라곤 prisma db push랑 위의 swagger 패키지 다운받은 것밖에 없는데...! (dev로 받아서 파일 변경되었다고 이러겠지만...)
구글링해도 어려운 도식만 나오길래 튜터님께 찾아갔다.
rebase는 어려운 개념이므로 설명을 듣지 않고 간단하게 첫줄 git config pull.rebase false를 복사해서 터미널에 붙이기
그 이후 아무 안내 문구 없이 잘 넘어가면 git pull
그리고 나는 pm2를 sudo에서 열었으므로 sudo에 가서 pm2를 껐다 다시 켜기
---> 그러면 배포 url에서도 swagger을 불러올 수 있다!!

배포까지 마친 후기
: 자바스크립트에서 swagger는 할 일이 아닌 것 같다.