Skip to content

Commit 0b354b6

Browse files
Merge pull request #299568 from v-albemi/apim-versions
Freshness Edit: Azure API Management
2 parents 0aac172 + 0c604a2 commit 0b354b6

File tree

1 file changed

+27
-24
lines changed

1 file changed

+27
-24
lines changed
Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,34 @@
11
---
22
title: Versions in Azure API Management | Microsoft Docs
3-
description: Learn about the concept of versions in Azure API Management.
3+
description: Learn about versions in Azure API Management. Versions allow you to present groups of related APIs to your developers.
44
services: api-management
55
author: dlepow
66

77
ms.service: azure-api-management
88
ms.topic: concept-article
9-
ms.date: 10/31/2021
9+
ms.date: 05/12/2025
1010
ms.author: danlep
11+
12+
#Customer intent: As an API developer, I want to use versions in API Management so that I can safely handle breaking changes in my API.
1113
---
1214

1315
# Versions in Azure API Management
1416

1517
[!INCLUDE [api-management-availability-all-tiers](../../includes/api-management-availability-all-tiers.md)]
1618

17-
Versions allow you to present groups of related APIs to your developers. You can use versions to handle breaking changes in your API safely. Clients can choose to use your new API version when they're ready, while existing clients continue to use an older version. Versions are differentiated through a version identifier (which is any string value you choose), and a versioning scheme allows clients to identify which version of an API they want to use.
19+
Versions enable you to present groups of related APIs to your developers. You can use versions to handle breaking changes in your API safely. Clients can choose to use your new API version when they're ready, while existing clients continue to use an older version. Versions are differentiated via a version identifier (which is any string value you choose), and a versioning scheme allows clients to identify which version of an API they want to use. This article describes how to use versions in API Management.
1820

1921
For most purposes, each API version can be considered its own independent API. Two different API versions might have different sets of operations and different policies.
2022

2123
With versions you can:
2224

2325
- Publish multiple versions of your API at the same time.
24-
- Use a path, query string, or header to differentiate between versions.
25-
- Use any string value you wish to identify your version, which could be a number, a date, or a name.
26+
- Use a path, query string, or header to differentiate among versions.
27+
- Use any string value you want to identify your version. It could be a number, a date, or a name.
2628
- Show your API versions grouped together on the developer portal.
27-
- Take an existing (non-versioned) API, and create a new version of it without breaking existing clients.
29+
- Create a new version of an existing (non-versioned) API without affecting existing clients.
2830

29-
[Get started with versions by following our walkthrough.](./api-management-get-started-publish-versions.md)
31+
[Get started with versions by completing a walkthrough.](./api-management-get-started-publish-versions.md)
3032

3133
## Versioning schemes
3234

@@ -36,9 +38,9 @@ Different API developers have different requirements for versioning. Azure API M
3638

3739
When the path versioning scheme is used, the version identifier needs to be included in the URL path for any API requests.
3840

39-
For example, `https://apis.contoso.com/products/v1` and `https://apis.contoso.com/products/v2` could refer to the same `products` API but to versions `v1` and `v2` respectively.
41+
For example, `https://apis.contoso.com/products/v1` and `https://apis.contoso.com/products/v2` could refer to the same `products` API but to versions `v1` and `v2`.
4042

41-
The format of an API request URL when using path-based versioning is: `https://{yourDomain}/{apiName}/{versionIdentifier}/{operationId}`.
43+
The format of an API request URL when you use path-based versioning is `https://{yourDomain}/{apiName}/{versionIdentifier}/{operationId}`.
4244

4345
### Header-based versioning
4446

@@ -50,22 +52,22 @@ For example, you might create a custom header named `Api-Version`, and clients c
5052

5153
When the query string versioning scheme is used, the version identifier needs to be included in a query string parameter for any API requests. You can specify the name of the query string parameter.
5254

53-
The format of an API request URL when using query string-based versioning is: `https://{yourDomain}/{apiName}/{operationId}?{queryStringParameterName}={versionIdentifier}`.
55+
The format of an API request URL when you use query string-based versioning is `https://{yourDomain}/{apiName}/{operationId}?{queryStringParameterName}={versionIdentifier}`.
5456

55-
For example, `https://apis.contoso.com/products?api-version=v1` and `https://apis.contoso.com/products?api-version=v2` could refer to the same `products` API but to versions `v1` and `v2` respectively.
57+
For example, `https://apis.contoso.com/products?api-version=v1` and `https://apis.contoso.com/products?api-version=v2` could refer to the same `products` API but to versions `v1` and `v2`.
5658

5759
> [!NOTE]
5860
> Query parameters aren't allowed in the `servers` property of an OpenAPI specification. If you export an OpenAPI specification from an API version, a query string won't appear in the server URL.
5961
6062
## Original versions
6163

62-
If you add a version to a non-versioned API, an `Original` version will be automatically created and will respond on the default URL, without a version identifier specified. The `Original` version ensures that any existing callers are not broken by the process of adding a version. If you create a new API with versions enabled at the start, an `Original` version isn't created.
64+
If you add a version to a non-versioned API, an `Original` version will be automatically created and will respond on the default URL, without a version identifier specified. The `Original` version ensures that any existing callers aren't affected by the process of adding a version. If you create a new API with versions enabled at the start, an `Original` version isn't created.
6365

6466
## How versions are represented
6567

66-
Azure API Management maintains a resource called a *version set*, which represents a set of versions for a single logical API. A version set contains the display name of the versioned API and the [versioning scheme used](#versioning-schemes) to direct requests to specified versions.
68+
API Management maintains a resource called a *version set*, which represents a set of versions for a single logical API. A version set contains the display name of the versioned API and the [versioning scheme that's used](#versioning-schemes) to direct requests to specified versions.
6769

68-
Each version of an API is maintained as its own API resource, which is then associated with a version set. A version set might contain APIs with different operations or policies. You might make significant changes between versions in a set.
70+
Each version of an API is maintained as its own API resource and is associated with a version set. A version set might contain APIs with different operations or policies. You might make significant changes between versions in a set.
6971

7072
The Azure portal creates version sets for you. You can modify the name and description for a version set in the Azure portal.
7173

@@ -74,32 +76,33 @@ A version set is automatically deleted when the final version is deleted.
7476
You can view and manage version sets directly by using [Azure CLI](/cli/azure/apim/api/versionset), [Azure PowerShell](/powershell/module/az.apimanagement/#api-management), [Resource Manager templates](/azure/templates/microsoft.apimanagement/service/apiversionsets), or the [Azure Resource Manager API](/rest/api/apimanagement/current-ga/api-version-set).
7577

7678
> [!NOTE]
77-
> All versions in a version set have the same versioning scheme, based on the versioning scheme used when you first add a version to an API.
79+
> All versions in a version set have the same versioning scheme. It's based on the versioning scheme that's used when you first add a version to an API.
80+
7881
### Migrating a non-versioned API to a versioned API
7982

8083
When you use the Azure portal to enable versioning on an existing API, the following changes are made to your API Management resources:
8184

8285
* A new version set is created.
83-
* The existing version is maintained and [configured as the `Original` API version](#original-versions). The API is linked to the version set but doesn't require a version identifier to be specified.
84-
* The new version is created as a new API, and is linked to the version set. This new API must be accessed using the versioning scheme and identifier.
86+
* The existing version is maintained and [configured as the `Original` API version](#original-versions). The API is linked to the version set, but a version identifier doesn't need to be specified.
87+
* The new version is created as a new API and is linked to the version set. A versioning scheme and identifier must be used to access the new API.
8588

8689
## Versions and revisions
8790

88-
Versions and revisions are distinct features. Each version can have multiple revisions, just like a non-versioned API. You can use revisions without using versions, or the other way around. Typically versions are used to separate API versions with breaking changes, while revisions can be used for minor and non-breaking changes to an API.
91+
Versions and revisions are distinct features. Each version can have multiple revisions, just like a non-versioned API. You can use revisions without using versions, or the other way around. Typically, versions are used to separate API versions that have breaking changes, and revisions can be used for minor and non-breaking changes to an API.
8992

90-
Should you find that your revision has breaking changes, or if you wish to formally turn your revision into a beta/test version, you can create a version from a revision. Using the Azure portal, click the 'Create Version from Revision' on the revision context menu on the Revisions tab.
93+
If you find that your revision has breaking changes, or if you want to formally turn your revision into a beta/test version, you can create a version from a revision. In the Azure portal, select **Create Version from this Revision** on the revision context menu (**...**) on the **Revisions** tab.
9194

9295
## Developer portal
9396

94-
The [developer portal](./api-management-howto-developer-portal.md) lists each version of an API separately.
97+
The [developer portal](./api-management-howto-developer-portal.md) lists each version of an API separately:
9598

96-
![API Management developer portal displaying a list of versioned APIs](media/api-management-versions/portal-list.png)
99+
:::image type="content" source="media/api-management-versions/portal-list.png" alt-text="Screenshot that shows a list of versioned APIs in the API Management developer portal." lightbox="media/api-management-versions/portal-list.png":::
97100

98-
The details of an API also show a list of all of the versions of that API. An `Original` version is displayed without a version identifier.
101+
In the details for an API, you can also see a list of all of the versions of the API. An `Original` version is displayed without a version identifier:
99102

100-
![API Management developer portal displaying an API's details and a list of versions for that API](media/api-management-versions/portal-details.png)
103+
:::image type="content" source="media/api-management-versions/portal-details.png" alt-text="Screenshot that shows an API's details and a list of versions of the API in the API Management developer portal." lightbox="media/api-management-versions/portal-details.png":::
101104

102105
> [!TIP]
103-
> API versions need to be added to a product before they will be visible on the developer portal.
106+
> You need to add API versions to a product to make them visible in the developer portal.
104107
105108

0 commit comments

Comments
 (0)