All reasonable suggestions except the versioning bit. Perhaps every long while you replace one api with another. In that case you either keep supporting to old one or force clients to move to the new one.
But while you have an api you have to keep your interfaces constant, support all the old signatures and add new ones as necessary.