Great post! I’d suggest decoupling your services from axios, so you can easily separate concerns and eventually replace axios with other solution. Probably a good way of achieving so is by injecting axios to your service (Dependency Injection).
But again, great post! I’ve struggled several times with the api/services architecture. I used to use Vuex for them, but the coupling was so heavy that it became really hard to reason or refactor. Now I follow the same approach you outlined here.