What’s the most common way to handle API integration?

I work with some not-monolithic applications, meaning that at some level, it depends on other applications to do the work. At the moment, each application on our stack, when there is an API change, generates a new API SDK, that can be used by other applications that rely on it. The issue is that this adds an explicit dependency and another thing to maintain, since the API needs to be generated.

I read that our current approach should be avoided when building microservices and that’s our main goal. The other approach is to have a well defined API and the services that rely on it should handle the API integration by themselves. But if more than one application has to build it’s integration layer, code gets duplicated across applications and it’s also time consuming when the team could be building features.

What’s the best approach when working in such environment?

Edit 1: The main concern is that every API change requires the API SDK to be generated (we do that with Swagger) and published to our internal maven repository). I wonder if there is more transparent way of doing that.