Migration

Updating client libraries and SDKs during a migration

Plenty of geocoding and location data integrations do not talk to an HTTP API directly at all; they go through an official client library or SDK that wraps the requests, handles authentication, and returns results as typed objects in whatever language the application is written in. That extra layer is convenient day to day, but it adds a real wrinkle to a migration, because the library itself, not just the API behind it, needs to be part of the plan.

There are broadly three ways a migration involving a client library tends to go, and it is worth deciding which one applies before starting:

The library supports a custom base URL. Some official client libraries are written flexibly enough to accept a different base URL for requests while keeping the rest of their interface unchanged, in which case pointing the existing library at a compatibility host, if the response shape matches what the library expects to parse, can work with essentially no application code changes at all. This is the best case and worth checking for first.

The library is tightly coupled to one host. Many client libraries hardcode their target host or make assumptions specific to their provider's authentication flow that cannot be easily redirected. In this case, the pragmatic path is usually to bypass the library entirely for the migrated calls and make requests directly against the new provider's API, replacing the library's typed wrapper with your own thin request function.

No library is involved at all. If your integration already makes raw HTTP requests without an official library in the middle, this whole question does not apply, and the migration is a more direct matter of changing the host, key, and any response parsing that needs adjusting.

Because My Geocode's authentication supports an X-API-Key header, an Authorization: Bearer header, HTTP Basic auth, or a query parameter, a client library that already authenticates in any one of these common ways has a reasonable chance of working against a compatibility host with just a base URL change and a new key, even without official first-party library support for this specific platform. It is worth testing this directly against a staging environment before assuming either that it will work without changes or that it will not work at all; the actual result depends entirely on how flexibly the specific library in question was written.

Whichever path applies, it is worth documenting the decision explicitly in your migration notes, since a library dependency that gets quietly bypassed during a migration but not documented tends to confuse whoever maintains the code a year later, when they update the old library expecting it to still be in the request path. A short comment explaining that requests now bypass the official client library, and why, saves real confusion down the line.