[REST API] 개인 프로젝트 REST API 버전 관리
2021. 11. 27. 15:49ㆍWeb/REST API
버전 관리
알고 있는 4가지 버전 관리 방법 중 Header로 관리하는 방법을 선택했다.
- URI
- Request Parameter
- Header
- MIME
선택 이유
먼저 사용자들이 이용할 서비스는 직접 API를 다룰 일이 없다. 따라서 API 정보가 일반 사용자에게 보여질 필요가 없다고 생각했다. 1번과 2번이 해당되어 제외했고 Header와 MIME 중 선택해야 했는데 굳이 MIME으로 복잡하게 할 필요가 없다고 생각하여 간편하게 Header로 관리하는 방법을 선택했다.
네이밍을 직접 한 것은 처음이었는데 네이밍 컨벤션에 관하여 검색해보니 "X-"를 사용하는 것은 deprecated 되어 지양하고 각 서비스에 적절한 이름을 정하라고 했다. 그래서 나는 만들 서비스의 이름을 따 StudyLounge-API-VERSION 으로 정했다.
여기서 더 깊게 들어가면 MSA 구조까지 생각하여 기능별로 API를 구분할 수도 있다는 걸 알게 됐다. 예를 들어 회원 관련 API와 게시글 관련 API의 버전을 따로 관리해서 StudyLounge-USER-API-VERSION, StudyLounge-POST-API-VERSION 등 이런 식으로 지정할 수도 있다. 그러나 현재 서비스를 시작부터 MSA 구조로 만들 필요성도 없으며 현재 역량으로는 MSA 구조로 개발하는 것은 어렵다고 생각하여 간결하게 지정했다.