versioning은 기존 client를 깨뜨리지 않고 breaking change로 API를 진화시킬 수 있게 한다. 주류 전략은 셋이며, 여기에 deprecation 절차가 더해진다.
세 가지 전략
1. URI versioning — 버전이 path에 있다.
GET /v1/users/42 HTTP/1.1
GET /v2/users/42 HTTP/1.1
가장 단순하고 잘 보인다. 라우팅·캐싱하기 쉽고 브라우저에서 테스트하기 쉽다. 단점: 엄밀히는 "URI는 리소스를 식별한다"를 위반한다(같은 user가 이제 두 URL을 가진다). 단연 가장 흔한 선택이다(GitHub, 과거의 Stripe).
2. Custom header versioning — 버전이 헤더로 이동한다.
