I'm trying to understand the problem this solves. Let's say you have an HTTP API which allows users to update their email address:
POST /api/user/:username/update_email
But you change the application to require API clients to send the user_id instead of the username. POST /api/user/:user_id/update_email
Wouldn't you still need to mandate that all clients are updated regardless of whether you use this tool as an abstraction layer to your API?