Hey Ej, thanks for the question!
Yes, what I have seen work great is having v1 and v2 both available, until all consumers are able to migrate to the newest (v2). Then safely decomissioning v1. Backwards compatibility is super important, especially in larger companies with numerous consumers.
The other thing is communicating new relases, documenting them so that consumers are aware. Nothing is worse than some app team finding out last minute that their API version is being deprecated soon without prior awareness to do some checking, figure out upgrade complexity, etc.
I will write more in detail about this in a future article! Thanks for checking this out.