Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

Apigee | Api Versioning | best practices

Hello,

I have a question regarding the best practices for applying API versioning in Apigee. From the examples I've seen, versioning is typically applied to the proxy base URL. However, this approach seems to require creating new proxies when a version change is needed. This means I'd need to maintain both the old and new versions until the older version is deprecated, which could lead to additional management overhead.

Alternatively, if I choose to apply versioning to specific endpoints (e.g., by using path suffixes for individual endpoints), is this approach considered acceptable, or would it be viewed as an anti-pattern? Specifically, I’m interested in applying versioning at the endpoint level, especially when those endpoints are developed as flows (path suffixes) within the same proxy, rather than creating separate proxies for each version.

What are the pros and cons of both approaches? Are there any potential drawbacks or considerations I should be aware of, particularly with the path suffix versioning strategy?

0 2 606
2 REPLIES 2

Hi @Bassant_Tharwat, thanks for sharing your question! Due to the holiday season, there may be some delays in responses, but I’ll keep an eye on your post to ensure it gets the attention it deserves.

Looking forward to seeing the insights our community has to share, and happy holidays!

Hi @Bassant_Tharwat, thanks for the question.  As a general rule, we advise against combining different APIs or versions into a single proxy (either through the use of multiple ProxyEndpoints or Flows), as this can become hard to maintain over time. While creating separate proxies may seem like additional overhead, it provides cleaner separation and greater control over testing and rollout of new versions. Furthermore, configuring API Products is simpler and less prone to error when using separate proxies. Finally you'll be able to differentiate between the versions more easily in API Monitoring and Analytics, the latter of which is particularly important for tracking usage when planning deprecations.  Hope this helps!