찾았다, 타입스크립트 스웨거 코드젠

·2023년 1월 21일
1

삽질

목록 보기
11/11

초창기 회사에서는 스웨거가 정착이 되지 않았던 것인지

스웨거에 대한 타입 명시가 올바르지 못했다.

내가 입사했을 때, 회사 프로젝트를 처음 켜본 후 스웨거를 보면서
뭐야 응답값이 하나도 없는데 프론트가 일을 어떻게 하지? 라는 상상을 했다.

그렇게 프론트 팀에 물어본 결과, 스웨거...보면서 일 안하는데요? 라는 대답을 받았다.

스웨거에 대한 신뢰도가 너무 떨어져서, 노션과 애저를 통하여 인터페이스 협의를 하고 있다는 것.

나는 이게 너무너무 싫었고, 그래프큐엘을 도입할 생각을 가졌으나
커뮤니케이션 비용을 줄이기 위하여 그래프큐엘을 도입하기엔 메리트가 적다고 생각했다.

그러던 와중 이틀 전(19일 목요일) 인터페이스 협의로 2시간을 쓰고 난 후 야마가 돌았다.

도대체 왜 이렇게 일을 할 수 밖에 없는거지?

그러던 차에 트위터에 그냥 스웨거 코드젠 못하나,,, 하고 넋두리를 적었는데 트친분께서 회사에서 잘 쓰고 있다고 하셔서 한번 찾아봤다.

있다.

그리고 잘 돌아간다.

서문은 여기까지 하고, 실제로 도입을 해보도록 하좌

전역으로 스웨거 제너레이터 깔기

공식문서 https://github.com/swagger-api/swagger-codegen

우리팀은 전원이 맥북을 쓰고 있어서 일단 homebrew로 깔자.

brew install swagger-codegen

그 후 팀에서 사용하고 있는 swagger에 접근해서 제일 뒤 path에 -json을 붙이면?

json 형식의 swagger 구조를 확인할 수 있다.

그리고 이것을 복사해서, 아무렇게나 .json 파일에 넣고 저장을 해준 다음

swagger-codegen generate -i swagger.json -l typescript-axios

이렇게 적어주면 models이라는 폴더에 컨트롤러와 스웨거에서 표기하고 있는 모든 타입을 가져올 수 있게 된다.

4줄 요약

  1. brew install swagger-codegen
  2. 사용하는 스웨거 접속해서 / 지우고 -json 입력
  3. 나오는 데이터 복사해서 파일명.json에 붙여넣기하고 저장
  4. swagger-codegen generate -i swagger.json -l typescript-axios

이것으로 프론트의 타입이 꼬인 것을 조금이나마 개선할 수 있을 것 같아서 기쁘다^-^

profile
물류 서비스 Backend Software Developer

0개의 댓글