Don't break your users' code. Choose a versioning strategy that balances simplicity with scalability.
1Path vs Header
Path versioning is clear and discoverable, but it 'dirties' the resource identifier. Header versioning is cleaner and more RESTful, but harder for developers to test quickly in a browser.
2Semantic Versioning
Usually, APIs only version the 'Major' number (v1, v2). Minor updates and patches should be backward compatible and don't require a version bump in the URL.
3Deprecation Policy
Always communicate your deprecation timeline. Use the Warning or Sunset HTTP headers to let clients know when an old version will be taken offline.
