I had a look at Best practices for API versioning?, but am not quite convinced of the answer, so I am question the versioning part again with a more specific example. I am h
I find http://xxxx/v1/user/123 confusing as it suggests that there will be a higher api-version someday like http://xxxx/v2/user/123
It doesn't suggest that - however you have that ability in the future.
But this does not make sense in REST terms, the api version itself is HTTP 1.0 or 1.1, which is already sent inside the HTTP request.
The version of YOUR API and the version of HTTP that you are using to make requests do not have to be equal.
One could also argue that such version content-negotiation could be part of the URI inside the path, but I find it counter-intuitive, because you could end-up with different URIs for the same resource and have to maintain redirects at some point.
Its okay to have the version as a URI parameter as you demonstrated.
http://xxx/user/123?v=1 -> for perma-links/hyperlinks