운영을 하면서 서버의 API가 수정되거나 추가는 불가피하게 일어난다. 그때마다 클라이언트의 버전을 업데이트하라고 강제성을 띄우면 유저경험이 좋지 않다. 하위호환성 체크를 위해 API도 버전 관리가 필요하다.
API Versioning 전략에는 여러 방법이 있다.
// v1
GET /v1/users
Host: api.test.com
// v2
GET /v2/users
Host: api.test.com
// v1
GET /users
Host: api.test.com
// v2
GET /users
Host: api2.test.com
// v1
GET /users?version=1
Host: api.test.com
// v2
GET /users?version=2
Host: api.test.com
// v1
GET /users
Host: api.test.com
Version: 1
// v2
GET /users
Host: api.test.com
Version: 2
// v1
GET /users
Host: api.test.com
Accept: application/vnd.test.v1+json
// v2
GET /uesrs
Host: api.test.com
Accept: application/vnd.test.v2+json
완벽한 정답은 없다. 전략 중 내 상황과 가장 알맞는 전략을 선택하는게 정답이다.