[Refactor] OpenAPI를 이용하여 api interface 추출하기 #472
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related Issue : Closes #471
🧑🎤 Summary
sopt-operation에서 해준 작업이랑 동일합니다
org admin에 대한 api interface를 생성했어요
openapi spec을 이용해 줬고요
사용법이 궁금하시다면 여기서 확인하시면 될 거 같아요~
openapi-fetch를 사용해줬는데 작은 번들 사이즈와 사실상 제로 런타임에 가까워 성능상 문제가 전혀 없어서 그랬습니다!
openapi-react-query와 openapi-typescript-fetch 보다 사용법이 더 직관적이고 익숙할 뿐 아니라 사용자 수도 더 많아서 openapi-fetch를 골라줬습니다
openapi-typescript를 통해 생성된 interface는 1,000 줄이 넘는 코드로 너무 복잡해서 여기서 따로 type을 추출하기 어려웠어요
따라서 type을 추출하는 아래 라이브러리를 이용해줬습니다
swagger-typescript-api
yarn api-spec 명령어를 입력하면 자동으로 openapi spec으로 paths와 type들이 추출되도록 해놨습니다.
./src/ㅡㅡgeneratedㅡㅡ/api-types/data-contracts.ts에 type들이 추출되어 있어요
나머지 파일들은 각각의 API들끼리 모아놓은 파일입니다
내가 필요한 req data의 type이 뭔지 헷갈린다 하면 해당 API 파일로 가서 참고하시면 좋을 거 같아요