SlideShare a Scribd company logo
Versioning Best Practices
for API Architecture
Let us begin by admitting that API Versioning is a difficult task. For APIs
like Newsdata.io news API Development teams can make a variety of
changes to an API throughout its lifecycle (enhancements, bug fixes, adding
new capabilities, etc.).
How would you know whether a particular change necessitates a new API
version? How would you convey this to customers? How much time would
consumers have to make the switch?
All of these questions can be answered with careful planning.
Rule of Thumb for API Versioning
Each time you improve your API, it evolves. And API evolution can either
keep your API implementation the same or introduce breaking changes that
negatively impact your API consumers.
To keep consumers happy and APIs functional, you must decide on a
versioning method, how to version your APIs, and what general principles
to follow when upgrading your APIs.
Without further ado, let’s get started!
Tip #1 — Keep a Detailed & Up-to-date API Spec
An API Specifications document contains the following information for
software engineers and end-users:
Contract — An API Spec is a contractual agreement between API software
engineers and API consumers (or applications). It should include
information about all of the API features that are made available to the
application.
Operations — The specific operation(s) supported by the API, also known
as methods and functions.
Requests — The specific request(s) that the API supports, as made by
applications.
Responses — The specific response(s) supported by the API and expected
by applications.
If the API service does not comply with the agreed-upon corresponding API
Spec, an application will not function properly with it.
Tip #2 — Devise a Versioning Strategy
This is to handle the evolution of APIs (enhancements, bug fixes) over time.
Software engineers can use versioning strategies to do the following:
• Keep existing applications’ existing functionality(s).
• Provide new API versions with additional functionality(s).
How to handle the versioning
When it comes to versioning your API, as a software engineer, you should
consider the following concepts:
Postel’s Rule
Postel’s law suggests the following when implementing versions:
• Change responses (payloads) cautiously.
• Accept requests from applications/consumers with open arms.
Surprises are not Good! In the API world at least
When determining whether an API change is of the breaking variety, you
should apply the Principle of Least Astonishment and keep the following
guidelines in mind:
• Consumers are reliant on the calls/methods that the changes entail.
• The following consumer characteristics should be reflected in the design:
- Models
- Mental images
- Predictions
Software engineers can do the following to reduce surprises (or
astonishments):
• Make the API meet the consumers’ current expectations.
• Create and implement new features that will behave in accordance with
existing mental models created by consumers and end-users.
If teams stray too far from an existing mental model, they may conclude that
a potential change is a game-changer, even if they consider it
minor/harmless. This is due to the fact that the consumer and end-user lack
the underlying system knowledge that the software engineer supporting the
API possesses.
Tip #3 — Try to use Semantic Versioning
Semantic versioning is a strategy that enables engineers to create patches
and minor version changes without disrupting existing integrations.
Updates to patches
Patches are API changes that do not affect the API’s functionality. It could
be as simple as adding a new dependency.
Minor alterations
Minor changes may add some new functionality, but they rarely result in
breaking changes (ex: a newly required field).
Significant modifications
Major changes are those that necessitate application developers/consumers
changing how they call and consume an API (for example, providing a
required parameter(s) in an endpoint).
The effects of versioning
Versioning changes are costly and time-consuming for both the software
engineers who build and support the API. Additionally, the
applications/consumers that use the API require long timeframes to
properly test and ensure the upgrades are working with the application as
desired.
Using Semantic Versioning
We can do the following with Semantic Versioning:
• For versioning, use the following pattern to identify our APIs:
Major.Minor.Patch
• Release your API specifications in stages, with the first version being
1.0.0.
• Versions created prior to the initial release are denoted as 0.x.x.
• - An important note: The 0 indicates that the API was still in
development mode.
• Minor and patch versions are numbered sequentially beginning with 0.
• When the next higher version change occurs, restart the numbering for
minor and patch versions at 0.
• When creating your API, include the major version number in the path
You can use pretty much any design strategy for your endpoint base (also
known as basePath), but here’s what I’ve seen work frequently:
1. Domain
2. Sub-domain
3. Version
4. Useful resource
In my opinion, and based on my experience, I recommend including the
major version number in the basePath for the following reasons:
• Semantic versioning will limit the ability of the API software engineer to
update and change the API Spec and existing APIs.
• Breaking changes SHOULD NOT be introduced in minor and patch
versions.
Versioning your URIs
My personal recommendation is to use URI Versioning to preserve previous
versions of an API while migrating your consumers to newer API versions.
When updating versions, keep the following points in mind:
• Consistently indicate the version(s).
• Separate different resources.
• Create a new API call whenever the software engineer wants to provide a
newer version of the API Spec.
• Maintain the functionality(s) of applications that used the previous API.
So, by updating the basePath for new API Specs, software engineers can
support and catch the following scenarios:
• Existing APIs can be preserved by software engineers.
• To support the new API Specs, engineers can create new API endpoints.
• The version change has no effect on applications that have not fully
transitioned to the updated URI.
• Existing consumer applications can continue to operate normally.
Tip #5 — Handling and Onboarding Breaking Changes
Breaking changes typically result in an increase in the major version
number, while non-breaking changes result in an increase in the minor
version number.
When rolling out/changing the major version number, you must consider all
of your existing API consumers.
When releasing a new version of an API, many software engineers “sunset”
the current version.
During the sunset phase, software engineers run the previous version of the
previous API version alongside the new API version.
The API sunset phase, allows API consumers to gradually migrate to the
new version.
Tip #6 — Handling and Onboarding Non-Breaking Changes
Engineers typically perform the following updates for minor version
changes:
• Adding one to the minor version
• Reverting the patch version to zero
Patch Changes
API Specs would only include patch changes if the updates would have no
effect on the Spec’s functionality (for example, typos in the description or
other types of errors that do not affect general functionality(s)).
Routing changes
You can change the URL endpoint, and the correct API call will be routed
automatically. To accomplish this, I always recommend including the
version in the basePath. Finally, you must contact your downstream API
consumers and request that they update the new basePath when you require
them to use your new API version.
Tip #7 — Gracefully Sunset and Deprecate legacy API versions
When you release an upgraded version of an API, you should deprecate the
previous versions so that you don’t have to maintain two service
implementations for the API.
When an API is sun-set, it enters a limited-maintenance mode, giving API
subscribers time to migrate to a newer version of the API.
Software engineers should provide a sunset and deprecation policy, stating
the policy for any sunset period upfront.
Always try to do the following when sunsetting and deprecating APIs for the
best customer service:
• Make an announcement informing all API users that they must upgrade
to the new API version. This notice should include any sunset period and
the date you intend to discontinue the service. Maintain an up-to-date
list of your API consumers’ contact information.
• Sunset the API with a warning indicating the sunset time (ex: 1 month, x
number of weeks, etc.).
• Deprecate the API once users have stopped using previous versions.
Reference and Credits
1. https://abdulrwahab.medium.com/api-architecture-versioning-best-
practices-1d5cea49df25
2. https://newsdata.io

More Related Content

Similar to Versioning Best Practices for API Architecture.pdf

Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
WSO2
 
Api tools overview
Api tools overviewApi tools overview
Api tools overviewOlivier Thomann
 
Building Your API for Longevity
Building Your API for LongevityBuilding Your API for Longevity
Building Your API for Longevity
MuleSoft
 
SlideShare Test-1
SlideShare Test-1SlideShare Test-1
SlideShare Test-1
Michael Maverick
 
10 steps to design and build the perfect
10 steps to design and build the perfect10 steps to design and build the perfect
10 steps to design and build the perfect
Son Nguyen
 
Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?Olivier Thomann
 
Angularjs Development Company USA
Angularjs Development Company USA Angularjs Development Company USA
Angularjs Development Company USA
Shelly Megan
 
How to deal with REST API Evolution
How to deal with REST API EvolutionHow to deal with REST API Evolution
How to deal with REST API Evolution
Miredot
 
API Management For Building Software Applications Powerpoint Presentation Slides
API Management For Building Software Applications Powerpoint Presentation SlidesAPI Management For Building Software Applications Powerpoint Presentation Slides
API Management For Building Software Applications Powerpoint Presentation Slides
SlideTeam
 
API Revisions - WSO2 API Manager Community Call (10/27/2021)
API Revisions - WSO2 API Manager Community Call (10/27/2021)API Revisions - WSO2 API Manager Community Call (10/27/2021)
API Revisions - WSO2 API Manager Community Call (10/27/2021)
WSO2
 
Session on API auto scaling, monitoring and Log management
Session on API auto scaling, monitoring and Log managementSession on API auto scaling, monitoring and Log management
Session on API auto scaling, monitoring and Log management
pqrs1234
 
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.ioMuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
Jitendra Bafna
 
APIs, APIs and more APIs
APIs, APIs and more APIsAPIs, APIs and more APIs
APIs, APIs and more APIs
Anand Sawant
 
API Product Management - Driving Success through the Value Chain
API Product Management - Driving Success through the Value ChainAPI Product Management - Driving Success through the Value Chain
API Product Management - Driving Success through the Value Chain
Apigee | Google Cloud
 
Api manager
Api managerApi manager
Api manager
chaitanya581
 
Dependency Down, Flexibility Up – The Benefits of API-First Development
Dependency Down, Flexibility Up – The Benefits of API-First DevelopmentDependency Down, Flexibility Up – The Benefits of API-First Development
Dependency Down, Flexibility Up – The Benefits of API-First Development
Nordic APIs
 
Angular11 exciting new features and updates
Angular11 exciting new features and updatesAngular11 exciting new features and updates
Angular11 exciting new features and updates
Shelly Megan
 
I am sorry Developer, your API just became a Product.pdf
I am sorry Developer, your API just became a Product.pdfI am sorry Developer, your API just became a Product.pdf
I am sorry Developer, your API just became a Product.pdf
Francisco Picolini
 
API Tooling in Eclipse
API Tooling in EclipseAPI Tooling in Eclipse
API Tooling in Eclipse
Chris Aniszczyk
 
INTERFACE, by apidays - Low code APIs that don't break by Zdenek Nemec, Supe...
INTERFACE, by apidays  - Low code APIs that don't break by Zdenek Nemec, Supe...INTERFACE, by apidays  - Low code APIs that don't break by Zdenek Nemec, Supe...
INTERFACE, by apidays - Low code APIs that don't break by Zdenek Nemec, Supe...
apidays
 

Similar to Versioning Best Practices for API Architecture.pdf (20)

Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
 
Api tools overview
Api tools overviewApi tools overview
Api tools overview
 
Building Your API for Longevity
Building Your API for LongevityBuilding Your API for Longevity
Building Your API for Longevity
 
SlideShare Test-1
SlideShare Test-1SlideShare Test-1
SlideShare Test-1
 
10 steps to design and build the perfect
10 steps to design and build the perfect10 steps to design and build the perfect
10 steps to design and build the perfect
 
Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?
 
Angularjs Development Company USA
Angularjs Development Company USA Angularjs Development Company USA
Angularjs Development Company USA
 
How to deal with REST API Evolution
How to deal with REST API EvolutionHow to deal with REST API Evolution
How to deal with REST API Evolution
 
API Management For Building Software Applications Powerpoint Presentation Slides
API Management For Building Software Applications Powerpoint Presentation SlidesAPI Management For Building Software Applications Powerpoint Presentation Slides
API Management For Building Software Applications Powerpoint Presentation Slides
 
API Revisions - WSO2 API Manager Community Call (10/27/2021)
API Revisions - WSO2 API Manager Community Call (10/27/2021)API Revisions - WSO2 API Manager Community Call (10/27/2021)
API Revisions - WSO2 API Manager Community Call (10/27/2021)
 
Session on API auto scaling, monitoring and Log management
Session on API auto scaling, monitoring and Log managementSession on API auto scaling, monitoring and Log management
Session on API auto scaling, monitoring and Log management
 
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.ioMuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
 
APIs, APIs and more APIs
APIs, APIs and more APIsAPIs, APIs and more APIs
APIs, APIs and more APIs
 
API Product Management - Driving Success through the Value Chain
API Product Management - Driving Success through the Value ChainAPI Product Management - Driving Success through the Value Chain
API Product Management - Driving Success through the Value Chain
 
Api manager
Api managerApi manager
Api manager
 
Dependency Down, Flexibility Up – The Benefits of API-First Development
Dependency Down, Flexibility Up – The Benefits of API-First DevelopmentDependency Down, Flexibility Up – The Benefits of API-First Development
Dependency Down, Flexibility Up – The Benefits of API-First Development
 
Angular11 exciting new features and updates
Angular11 exciting new features and updatesAngular11 exciting new features and updates
Angular11 exciting new features and updates
 
I am sorry Developer, your API just became a Product.pdf
I am sorry Developer, your API just became a Product.pdfI am sorry Developer, your API just became a Product.pdf
I am sorry Developer, your API just became a Product.pdf
 
API Tooling in Eclipse
API Tooling in EclipseAPI Tooling in Eclipse
API Tooling in Eclipse
 
INTERFACE, by apidays - Low code APIs that don't break by Zdenek Nemec, Supe...
INTERFACE, by apidays  - Low code APIs that don't break by Zdenek Nemec, Supe...INTERFACE, by apidays  - Low code APIs that don't break by Zdenek Nemec, Supe...
INTERFACE, by apidays - Low code APIs that don't break by Zdenek Nemec, Supe...
 

More from Aparna Sharma

Modern REST API design principles and rules.pdf
Modern REST API design principles and rules.pdfModern REST API design principles and rules.pdf
Modern REST API design principles and rules.pdf
Aparna Sharma
 
Modern REST API design principles and rules.pdf
Modern REST API design principles and rules.pdfModern REST API design principles and rules.pdf
Modern REST API design principles and rules.pdf
Aparna Sharma
 
Competitive intelligence with Newsdata.io news API.pdf
Competitive intelligence with Newsdata.io news API.pdfCompetitive intelligence with Newsdata.io news API.pdf
Competitive intelligence with Newsdata.io news API.pdf
Aparna Sharma
 
What is the difference between web scraping and api
What is the difference between web scraping and apiWhat is the difference between web scraping and api
What is the difference between web scraping and api
Aparna Sharma
 
Top 15 news apis in the market in 2022 for you
Top 15 news apis in the market in 2022 for youTop 15 news apis in the market in 2022 for you
Top 15 news apis in the market in 2022 for you
Aparna Sharma
 
What are the different types of web scraping approaches
What are the different types of web scraping approachesWhat are the different types of web scraping approaches
What are the different types of web scraping approaches
Aparna Sharma
 
Top 11 API testing tools for 2022
Top 11 API testing tools for 2022Top 11 API testing tools for 2022
Top 11 API testing tools for 2022
Aparna Sharma
 
Top 11 api testing tools for 2022
Top 11 api testing tools for 2022Top 11 api testing tools for 2022
Top 11 api testing tools for 2022
Aparna Sharma
 
Top api testing tools in 2022
Top api testing tools in 2022Top api testing tools in 2022
Top api testing tools in 2022
Aparna Sharma
 
Best practices and advantages of REST APIs
Best practices and advantages of REST APIsBest practices and advantages of REST APIs
Best practices and advantages of REST APIs
Aparna Sharma
 
Is web scraping legal or not?
Is web scraping legal or not?Is web scraping legal or not?
Is web scraping legal or not?
Aparna Sharma
 
Top 17 web scraping tools for data extraction in 2022
Top 17 web scraping tools for data extraction in 2022Top 17 web scraping tools for data extraction in 2022
Top 17 web scraping tools for data extraction in 2022
Aparna Sharma
 
Future of saas in 2022 presentation
Future of saas in 2022 presentationFuture of saas in 2022 presentation
Future of saas in 2022 presentation
Aparna Sharma
 
Future of saas in 2022
Future of saas in 2022Future of saas in 2022
Future of saas in 2022
Aparna Sharma
 
10 best platforms to find free datasets
10 best platforms to find free datasets10 best platforms to find free datasets
10 best platforms to find free datasets
Aparna Sharma
 
Top 13 web scraping tools in 2022
Top 13 web scraping tools in 2022Top 13 web scraping tools in 2022
Top 13 web scraping tools in 2022
Aparna Sharma
 
What is API test automation
What is API test automation What is API test automation
What is API test automation
Aparna Sharma
 
What is the difference between an api and web services
What is the difference between an api and web servicesWhat is the difference between an api and web services
What is the difference between an api and web services
Aparna Sharma
 
What are restful web services?
What are restful web services?What are restful web services?
What are restful web services?
Aparna Sharma
 

More from Aparna Sharma (19)

Modern REST API design principles and rules.pdf
Modern REST API design principles and rules.pdfModern REST API design principles and rules.pdf
Modern REST API design principles and rules.pdf
 
Modern REST API design principles and rules.pdf
Modern REST API design principles and rules.pdfModern REST API design principles and rules.pdf
Modern REST API design principles and rules.pdf
 
Competitive intelligence with Newsdata.io news API.pdf
Competitive intelligence with Newsdata.io news API.pdfCompetitive intelligence with Newsdata.io news API.pdf
Competitive intelligence with Newsdata.io news API.pdf
 
What is the difference between web scraping and api
What is the difference between web scraping and apiWhat is the difference between web scraping and api
What is the difference between web scraping and api
 
Top 15 news apis in the market in 2022 for you
Top 15 news apis in the market in 2022 for youTop 15 news apis in the market in 2022 for you
Top 15 news apis in the market in 2022 for you
 
What are the different types of web scraping approaches
What are the different types of web scraping approachesWhat are the different types of web scraping approaches
What are the different types of web scraping approaches
 
Top 11 API testing tools for 2022
Top 11 API testing tools for 2022Top 11 API testing tools for 2022
Top 11 API testing tools for 2022
 
Top 11 api testing tools for 2022
Top 11 api testing tools for 2022Top 11 api testing tools for 2022
Top 11 api testing tools for 2022
 
Top api testing tools in 2022
Top api testing tools in 2022Top api testing tools in 2022
Top api testing tools in 2022
 
Best practices and advantages of REST APIs
Best practices and advantages of REST APIsBest practices and advantages of REST APIs
Best practices and advantages of REST APIs
 
Is web scraping legal or not?
Is web scraping legal or not?Is web scraping legal or not?
Is web scraping legal or not?
 
Top 17 web scraping tools for data extraction in 2022
Top 17 web scraping tools for data extraction in 2022Top 17 web scraping tools for data extraction in 2022
Top 17 web scraping tools for data extraction in 2022
 
Future of saas in 2022 presentation
Future of saas in 2022 presentationFuture of saas in 2022 presentation
Future of saas in 2022 presentation
 
Future of saas in 2022
Future of saas in 2022Future of saas in 2022
Future of saas in 2022
 
10 best platforms to find free datasets
10 best platforms to find free datasets10 best platforms to find free datasets
10 best platforms to find free datasets
 
Top 13 web scraping tools in 2022
Top 13 web scraping tools in 2022Top 13 web scraping tools in 2022
Top 13 web scraping tools in 2022
 
What is API test automation
What is API test automation What is API test automation
What is API test automation
 
What is the difference between an api and web services
What is the difference between an api and web servicesWhat is the difference between an api and web services
What is the difference between an api and web services
 
What are restful web services?
What are restful web services?What are restful web services?
What are restful web services?
 

Recently uploaded

Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 

Recently uploaded (20)

Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 

Versioning Best Practices for API Architecture.pdf

  • 1. Versioning Best Practices for API Architecture Let us begin by admitting that API Versioning is a difficult task. For APIs like Newsdata.io news API Development teams can make a variety of changes to an API throughout its lifecycle (enhancements, bug fixes, adding new capabilities, etc.). How would you know whether a particular change necessitates a new API version? How would you convey this to customers? How much time would consumers have to make the switch?
  • 2. All of these questions can be answered with careful planning. Rule of Thumb for API Versioning Each time you improve your API, it evolves. And API evolution can either keep your API implementation the same or introduce breaking changes that negatively impact your API consumers. To keep consumers happy and APIs functional, you must decide on a versioning method, how to version your APIs, and what general principles to follow when upgrading your APIs. Without further ado, let’s get started! Tip #1 — Keep a Detailed & Up-to-date API Spec An API Specifications document contains the following information for software engineers and end-users: Contract — An API Spec is a contractual agreement between API software engineers and API consumers (or applications). It should include information about all of the API features that are made available to the application. Operations — The specific operation(s) supported by the API, also known as methods and functions. Requests — The specific request(s) that the API supports, as made by applications.
  • 3. Responses — The specific response(s) supported by the API and expected by applications. If the API service does not comply with the agreed-upon corresponding API Spec, an application will not function properly with it. Tip #2 — Devise a Versioning Strategy This is to handle the evolution of APIs (enhancements, bug fixes) over time. Software engineers can use versioning strategies to do the following: • Keep existing applications’ existing functionality(s). • Provide new API versions with additional functionality(s). How to handle the versioning When it comes to versioning your API, as a software engineer, you should consider the following concepts: Postel’s Rule Postel’s law suggests the following when implementing versions: • Change responses (payloads) cautiously. • Accept requests from applications/consumers with open arms. Surprises are not Good! In the API world at least
  • 4. When determining whether an API change is of the breaking variety, you should apply the Principle of Least Astonishment and keep the following guidelines in mind: • Consumers are reliant on the calls/methods that the changes entail. • The following consumer characteristics should be reflected in the design: - Models - Mental images - Predictions Software engineers can do the following to reduce surprises (or astonishments): • Make the API meet the consumers’ current expectations. • Create and implement new features that will behave in accordance with existing mental models created by consumers and end-users. If teams stray too far from an existing mental model, they may conclude that a potential change is a game-changer, even if they consider it minor/harmless. This is due to the fact that the consumer and end-user lack the underlying system knowledge that the software engineer supporting the API possesses. Tip #3 — Try to use Semantic Versioning
  • 5. Semantic versioning is a strategy that enables engineers to create patches and minor version changes without disrupting existing integrations. Updates to patches Patches are API changes that do not affect the API’s functionality. It could be as simple as adding a new dependency. Minor alterations Minor changes may add some new functionality, but they rarely result in breaking changes (ex: a newly required field). Significant modifications Major changes are those that necessitate application developers/consumers changing how they call and consume an API (for example, providing a required parameter(s) in an endpoint). The effects of versioning Versioning changes are costly and time-consuming for both the software engineers who build and support the API. Additionally, the applications/consumers that use the API require long timeframes to properly test and ensure the upgrades are working with the application as desired. Using Semantic Versioning
  • 6. We can do the following with Semantic Versioning: • For versioning, use the following pattern to identify our APIs: Major.Minor.Patch • Release your API specifications in stages, with the first version being 1.0.0. • Versions created prior to the initial release are denoted as 0.x.x. • - An important note: The 0 indicates that the API was still in development mode. • Minor and patch versions are numbered sequentially beginning with 0. • When the next higher version change occurs, restart the numbering for minor and patch versions at 0. • When creating your API, include the major version number in the path You can use pretty much any design strategy for your endpoint base (also known as basePath), but here’s what I’ve seen work frequently: 1. Domain 2. Sub-domain 3. Version 4. Useful resource In my opinion, and based on my experience, I recommend including the major version number in the basePath for the following reasons:
  • 7. • Semantic versioning will limit the ability of the API software engineer to update and change the API Spec and existing APIs. • Breaking changes SHOULD NOT be introduced in minor and patch versions. Versioning your URIs My personal recommendation is to use URI Versioning to preserve previous versions of an API while migrating your consumers to newer API versions. When updating versions, keep the following points in mind: • Consistently indicate the version(s). • Separate different resources. • Create a new API call whenever the software engineer wants to provide a newer version of the API Spec. • Maintain the functionality(s) of applications that used the previous API. So, by updating the basePath for new API Specs, software engineers can support and catch the following scenarios: • Existing APIs can be preserved by software engineers. • To support the new API Specs, engineers can create new API endpoints. • The version change has no effect on applications that have not fully transitioned to the updated URI.
  • 8. • Existing consumer applications can continue to operate normally. Tip #5 — Handling and Onboarding Breaking Changes Breaking changes typically result in an increase in the major version number, while non-breaking changes result in an increase in the minor version number. When rolling out/changing the major version number, you must consider all of your existing API consumers. When releasing a new version of an API, many software engineers “sunset” the current version. During the sunset phase, software engineers run the previous version of the previous API version alongside the new API version. The API sunset phase, allows API consumers to gradually migrate to the new version. Tip #6 — Handling and Onboarding Non-Breaking Changes Engineers typically perform the following updates for minor version changes: • Adding one to the minor version • Reverting the patch version to zero Patch Changes
  • 9. API Specs would only include patch changes if the updates would have no effect on the Spec’s functionality (for example, typos in the description or other types of errors that do not affect general functionality(s)). Routing changes You can change the URL endpoint, and the correct API call will be routed automatically. To accomplish this, I always recommend including the version in the basePath. Finally, you must contact your downstream API consumers and request that they update the new basePath when you require them to use your new API version. Tip #7 — Gracefully Sunset and Deprecate legacy API versions When you release an upgraded version of an API, you should deprecate the previous versions so that you don’t have to maintain two service implementations for the API. When an API is sun-set, it enters a limited-maintenance mode, giving API subscribers time to migrate to a newer version of the API. Software engineers should provide a sunset and deprecation policy, stating the policy for any sunset period upfront. Always try to do the following when sunsetting and deprecating APIs for the best customer service: • Make an announcement informing all API users that they must upgrade to the new API version. This notice should include any sunset period and
  • 10. the date you intend to discontinue the service. Maintain an up-to-date list of your API consumers’ contact information. • Sunset the API with a warning indicating the sunset time (ex: 1 month, x number of weeks, etc.). • Deprecate the API once users have stopped using previous versions. Reference and Credits 1. https://abdulrwahab.medium.com/api-architecture-versioning-best- practices-1d5cea49df25 2. https://newsdata.io