You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/api-management/devops-api-development-templates.md
+8-6Lines changed: 8 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,12 +22,11 @@ Each part of the API DevOps pipeline is discussed below.
22
22
23
23
## API definition
24
24
25
-
An API developer writes an API definition by providing a specification, settings (such as logging, diagnostics, and backend settings), and policies to be applied to the API. The API definition provides the information required to provision the API on an Azure API Management service. The specification may be based on a standards-based API specification (such as [WSDL][1], [OpenAPI][2], or [GraphQL][3]), or it may be defined using the Azure Resource Manager (ARM) APIs (for example, an ARM template describing the API and operations). The API definition will change over time and should be considered "source code". Ensure that the API definition is stored under source code control and has appropriate review before adoption.
25
+
An API developer writes an API definition by providing a specification, settings (such as logging, diagnostics, and backend settings), and policies to be applied to the API. The API definition provides the information required to provision the API on an Azure API Management service. The specification may be based on a standards-based API specification (such as [WSDL][1], [OpenAPI][2], or [GraphQL][3]), or it may be defined using the Azure Resource Manager (ARM) APIs (for example, an ARM template describing the API and operations). The API definition will change over time and should be considered "source code". Ensure that the API definition is stored under source code control and has appropriate review before adoption.
26
26
27
27
There are several tools to assist producing the API definition:
28
28
29
-
* The [Azure API Management DevOps Resource Toolkit][4] includes two tools that provide an Azure Resource Manager (ARM) template. The _extractor_ creates an ARM template by extracting an API definition from an API Management service. The _creator_ produces the ARM template from a YAML specification. The DevOps Resource Toolkit supports SOAP, REST, and GraphQL APIs.
30
-
* The [Azure APIOps Toolkit][5] provides a workflow built on top of a [git][21] source code control system (such as [GitHub][22] or [Azure Repos][23]). It uses an _extractor_ similar to the DevOps Resource Toolkit to produce an API definition that is then applied to a target API Management service. APIOps supports REST and GraphQL APIs at this time.
29
+
* The [Azure APIOps Toolkit][5] provides a workflow built on top of a [git][21] source code control system (such as [GitHub][22] or [Azure Repos][23]). It uses an _extractor_ to produce an API definition that is then applied to a target API Management service by a _publisher_. APIOps supports REST and GraphQL APIs at this time.
31
30
* The [dotnet-apim][6] tool converts a well-formed YAML definition into an ARM template for later deployment. The tool is focused on REST APIs.
32
31
*[Terraform][7] is an alternative to Azure Resource Manager to configure resources in Azure. You can create a Terraform configuration (together with policies) to implement the API in the same way that an ARM template is created.
33
32
@@ -53,9 +52,9 @@ Once the automated tools have been run, the API definition is reviewed by the hu
53
52
54
53
The API definition will be published to an API Management service through a release pipeline. The tools used to publish the API definition depend on the tool used to produce the API definition:
55
54
56
-
* If using the [Azure API Management DevOps Resource Toolkit][4] or [dotnet-apim][6], the API definition is represented as an ARM template. Tasks are available for [Azure Pipelines][17] and [GitHub Actions][18]to deploy an ARM template.
57
-
* If using the [Azure APIOps Toolkit][5], the toolkit includes a publisher that writes the API definition to the service.
58
-
* If using [Terraform][7], CLI tools will deploy the API definition on your service. There are tasks available for [Azure Pipelines][19] and [GitHub Actions][20]
55
+
* If using the [Azure APIOps Toolkit][5], the toolkit includes a publisher that writes the API definition to the target service.
56
+
* If using [dotnet-apim][6], the API definition is represented as an ARM template. Tasks are available for [Azure Pipelines][17] and [GitHub Actions][18]to deploy an ARM template.
57
+
* If using [Terraform][7], CLI tools will deploy the API definition on your service. There are tasks available for [Azure Pipelines][19] and [GitHub Actions][20].
59
58
60
59
> **Can I use other source code control and CI/CD systems?**
61
60
>
@@ -74,6 +73,7 @@ We've seen the greatest success in customer deployments, and recommend the follo
74
73
* Set up either [GitHub][22] or [Azure Repos][23] for your source code control system. This choice will determine your choice of pipeline runner as well. GitHub can use [Azure Pipelines][17] or [GitHub Actions][18], whereas Azure Repos must use Azure Pipelines.
75
74
* Set up an Azure API Management service for each API developer so that they can develop API definitions along with the API service. Use the consumption or developer SKU when creating the service.
76
75
* Use [policy fragments][24] to reduce the new policy that developers need to write for each API.
76
+
* Use [named values][29] and [backends][30] to ensure that policies are generic and can apply to any API Management instance.
77
77
* Use the [Azure APIOps Toolkit][5] to extract a working API definition from the developer service.
78
78
* Set up an API approval process that runs on each pull request. The API approval process should include breaking change detection, linting, and automated API testing.
79
79
* Use the [Azure APIOps Toolkit][5] publisher to publish the API to your production API Management service.
@@ -117,3 +117,5 @@ Review [Automated API deployments with APIOps][28] in the Azure Architecture Cen
0 commit comments