Revising API Versions: Maintaining Compatibility and Testing

Keep the Old API Deployable and Introduce the New API

Question

Your company has decided to make a major revision of their API in order to create better experiences for their developers.

They need to keep the old version of the API available and deployable, while allowing new customers and testers to try out the new API.

They want to keep the same SSL and DNS records in place to serve both APIs.

What should they do?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

D.

To allow for a major revision of their API while maintaining backward compatibility, your company needs to keep the old version of the API available and deployable. However, new customers and testers need to be able to try out the new API. This can be achieved while keeping the same SSL and DNS records in place by using a load balancer to direct traffic between the two versions of the API.

The load balancer will act as an intermediary between the clients and the APIs, distributing traffic across both APIs. The load balancer can be configured to direct traffic based on a number of factors, including client IP address, the path of the requested resource, or even the type of client making the request.

Option A, "Configure a new load balancer for the new version of the API," is a good option for achieving this. The load balancer can be configured to forward traffic to the appropriate version of the API based on the path of the requested resource.

Option B, "Reconfigure old clients to use a new endpoint for the new API," may be feasible in some cases, but it may not be practical or desirable to force all old clients to update their endpoints.

Option C, "Have the old API forward traffic to the new API based on the path," can be problematic as it requires the old API to be aware of the new API, which may not be desirable or feasible.

Option D, "Use separate backend pools for each API path behind the load balancer," is also a good option, as it allows for finer control over the traffic routing. However, it may be more complex to manage than using a single backend pool.

Overall, using a load balancer to direct traffic between the two versions of the API is the best solution, as it provides the necessary flexibility and control while keeping the SSL and DNS records in place.