{"id":82463,"date":"2020-09-22T09:00:56","date_gmt":"2020-09-22T16:00:56","guid":{"rendered":""},"modified":"2025-06-24T10:47:42","modified_gmt":"2025-06-24T17:47:42","slug":"announcing-dapr-integration-azure-api-management-service-apim","status":"publish","type":"post","link":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/","title":{"rendered":"Announcing Dapr integration in Azure API Management Service"},"content":{"rendered":"\n<figure class=\"wp-block-image alignleft\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/09\/Dapr-logo_image-1.png\" alt=\"Dapr logo\" \/><\/figure>\n\n\n\n<p>Dapr integration in the Azure API Management (APIM) service is now available. This new capability enables operations teams to directly expose Dapr microservices as APIs and make those APIs discoverable and easily consumable by developers with proper controls across multiple Dapr deployments\u2014whether in the cloud, on-premises, or on the edge.<\/p>\n\n\n\n<p>Since its <a href=\"https:\/\/cloudblogs.microsoft.com\/opensource\/2019\/10\/16\/announcing-dapr-open-source-project-build-microservice-applications\/\">initial release last year<\/a>, Dapr has been helping developers build stateless and stateful applications with any language or framework. By codifying the common microservice patterns, like service discovery and invocation with build-in retry logic, publish-and-subscribe with at-least-once delivery semantics, or pluggable binding resources to ease service composition using external APIs, Dapr is quickly becoming the de facto runtime for modern, distributed applications.<\/p>\n\n\n\n<figure class=\"wp-block-image alignnone attachment-large webp-format\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/09\/Dapr-Building-Blocks_image-2-1024x183.webp\" alt=\"Dapr Building Blocks\" \/><figcaption class=\"wp-element-caption\">Figure 1: Dapr Building Blocks<\/figcaption><\/figure>\n\n\n\n<p>The larger number of Dapr deployments across multiple environments also comes with the increased complexity of API management. Using the Dapr integration in Azure API Management announced today, users are now able to apply the <a href=\"https:\/\/aka.ms\/apim\/shgw\/overview\">self-hosted gateway<\/a> feature of APIM to manage all of their Dapr APIs, along with other APIs, in a single interface. This allows developers to decouple APIs from their backend service lifecycle. The more than 50 built-in policy templates can quickly accelerate the API management with things like TLS connection termination, payload formation, throttling enforcement, and caching across their deployments via an always up-to-date portal.<\/p>\n\n\n<figure class=\"wp-block-image alignnone attachment-large size-large webp-format\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/09\/API-Management-Self-hosted-Gateway-on-Kubernetes_image-3-1024x521.webp\" alt=\"API Management Self-hosted Gateway on Kubernetes\" class=\"wp-image-82469 webp-format\" srcset=\"\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/09\/API-Management-Self-hosted-Gateway-on-Kubernetes_image-3.webp\"><figcaption class=\"wp-element-caption\">Figure 2: API Management Self-hosted Gateway on Kubernetes<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"using-api-management-with-dapr-apis\">Using API Management with Dapr APIs<\/h2>\n\n\n\n<p>To illustrate the Dapr integration in APIM, we are going to walk through the process of securely and reliably exposing a public API that allows users to invoke a specific method on a single service deployed in Dapr. This is a common <a href=\"https:\/\/github.com\/dapr\/docs\/blob\/master\/concepts\/service-invocation\/README.md#service-invocation\">service invocation<\/a> scenario where users may have any number of Dapr services, but only a small subset of them need to be available externally.<\/p>\n\n\n\n<p>APIM supports two other <a href=\"https:\/\/github.com\/dapr\/docs\/tree\/master\/concepts#building-blocks\">Dapr building blocks<\/a>, <a href=\"https:\/\/github.com\/dapr\/docs\/blob\/master\/concepts\/publish-subscribe-messaging\/README.md#publishsubscribe-messaging\">pub\/sub<\/a>, and <a href=\"https:\/\/github.com\/dapr\/docs\/blob\/master\/concepts\/bindings\/README.md#bindings\">resource binding<\/a>s. See our reproducible demo at the end of this page for an in-depth walk-through for each one of these use-cases.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"api-configuration\">API Configuration<\/h3>\n\n\n\n<p>To define an API you can use any of the formats supported by APIM. In the example below, we are using the <a href=\"https:\/\/swagger.io\/specification\/\">OpenAPI<\/a> specification format.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/09\/Dapr-code-snippet_1.png\" alt=\"Dapr code snippet\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>You can import this file into APIM using either the <a href=\"https:\/\/docs.microsoft.com\/en-us\/cli\/azure\/apim\/api?view=azure-cli-latest#az_apim_api_import\">Azure CLI<\/a> shown below, or the <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/api-management\/import-and-publish\">APIM service<\/a> in Azure portal:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/09\/Dapr-code-snippet_2.png\" alt=\"Dapr code snippet\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"api-operation-policy\">API Operation Policy<\/h3>\n\n\n\n<p>To integrate this API with our Dapr microservice we will use a simple&nbsp;policy.&nbsp;The APIM <a href=\"https:\/\/aka.ms\/apimpolicies\">policies<\/a> encapsulate common API management functions and are composed into a series of steps that are sequentially executed on each request. These policies can be defined inside of inbound, outbound, and backend blocks. To configure the \u201c\/echo\u201d operation invocation to be forwarded to Dapr API, we will define out a policy within the inbound section.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/09\/Dapr-code-snippet_3.png\" alt=\"Dapr code snippet\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>The \u201c&lt;base \/&gt;\u201d element at the beginning in-lines all the policies defined higher up in the chain at the API or even APIM service level (e.g., throttling or authorization). Placing that element before all others ensures that APIM evaluates it before forwarding the invocation to the back-end service.<\/p>\n\n\n\n<p>Routing the inbound request to Dapr is as simple as setting the backend service using \u201cbackend-id\u201d attribute to \u201cdapr\u201d that tells APIM to forward the invocation in its original format to the Dapr API implemented by the Dapr sidecar container running alongside self-hosted gateway. The \u201cdapr-app-id\u201d and \u201cdapr-method\u201d attributes allow us to set the Dapr application ID and method name where we want this API invocation to be forwarded.<\/p>\n\n\n\n<p>The entire service discovery and actual invocation, including possible protocol translation between HTTP and gRPC, retries, distributed tracing, and error handling, are all done by Dapr. And since the external mapping of the API user invocations to Dapr is done in APIM policy, it can be easily and safely remapped to any other version as the API implementation evolves over time.<\/p>\n\n\n<figure class=\"wp-block-image alignnone attachment-large size-large webp-format\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/09\/API-Management-Dapr-Service-Backend-Mapping_image-4-1024x415.webp\" alt=\"API Management Dapr Service Backend Mapping\" class=\"wp-image-82466 webp-format\" srcset=\"\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/09\/API-Management-Dapr-Service-Backend-Mapping_image-4.webp\"><figcaption class=\"wp-element-caption\">Figure 3: API Management Dapr Service Backend Mapping<\/figcaption><\/figure>\n\n\n\n<p>As that service evolves and potentially has additional versions, which may require different payload formats, APIM can manage the entire process through either its <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/api-management\/api-management-revisions\">revisions<\/a>, for non-breaking changes, or <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/api-management\/api-management-versions\">versions<\/a>, in cases where API consumer opt-in is required.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"self-hosted-gateway-deployment\">Self-hosted Gateway deployment<\/h3>\n\n\n\n<p>To enable APIM to manage the APIs exposed by your Dapr services you will need to deploy and configure the self-hosted gateway into your Kubernetes cluster using <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/api-management\/how-to-deploy-self-hosted-gateway-kubernetes\">these steps<\/a>. To enable Dapr support in the gateway, you first augment the Kubernetes deployment template with a few Dapr annotations:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/09\/Dapr-code-snippet_4.png\" alt=\"Dapr code snippet\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>These annotations tell the Dapr control plane to inject a Dapr sidecar into the APIM gateway pod, which gives it the ability to invoke the Dapr API. To learn more about the Dapr Kubernetes sidecar configuration see <a href=\"https:\/\/github.com\/dapr\/docs\/tree\/master\/concepts\/hosting#running-dapr-in-kubernetes-mode\">Dapr docs<\/a>.<\/p>\n\n\n\n<p>The self-hosted gateway by default deploys two replicas to ensure availability during upgrades. Once ready, each replica will now have a second container (daprd) in the pod.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/09\/Dapr-code-snippet_5.png\" alt=\"Dapr code snippet\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>With the APIM gateway configured, you can invoke the \u201cecho\u201d service using the cluster ingress, while giving the operators the ability to manage their Dapr APIs using a single interface.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/09\/Dapr-code-snippet_6.png\" alt=\"Dapr code snippet\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"give-it-a-try\">Give it a try!<\/h2>\n\n\n\n<p>This post only covers the service invocation capability of the Dapr integration with APIM. You can find a full demo repo with step-by-step instructions on how to configure this and other Dapr APIs integrations in APIM <a href=\"https:\/\/aka.ms\/apim\/dapr\/walkthru\">on GitHub<\/a>. The complete reference of APIM Dapr integration policies can be found on the <a href=\"https:\/\/aka.ms\/apim\/dapr\/policies\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft Azure site<\/a>. We are excited to see what you can build with this Dapr and APIM gateway integration. You can reach us either in the Dapr community Gitter channel or in our <a href=\"https:\/\/github.com\/dapr\/dapr#community\">community calls<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dapr integration in the Azure API Management (APIM) service is now available. This new capability enables operations teams to directly expose Dapr microservices as APIs and make those APIs discoverable and easily consumable by developers with proper controls across multiple Dapr deployments\u2014whether in the cloud, on-premises, or on the edge.<\/p>\n","protected":false},"author":5562,"featured_media":95471,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"msxcm_post_with_no_image":false,"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[723,158,2272,166],"content-type":[346,361],"topic":[2242,2244],"programming-languages":[],"coauthors":[1688,1691],"class_list":["post-82463","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-dapr","tag-kubernetes","tag-microsoft","tag-azure","content-type-news","content-type-project-updates","topic-containers","topic-devops","review-flag-1593580428-734","review-flag-1-1593580432-963","review-flag-2-1593580437-411","review-flag-3-1593580442-169","review-flag-alway-1593580310-39","review-flag-integ-1593580288-449","review-flag-new-1593580248-669"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Announcing Dapr integration in Azure API Management Service | Microsoft Open Source Blog<\/title>\n<meta name=\"description\" content=\"Dapr integration in the Azure API Management (APIM) service is now available, enabling operations teams to expose Dapr microservices as APIs and make those APIs discoverable and easily consumable by developers.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Announcing Dapr integration in Azure API Management Service | Microsoft Open Source Blog\" \/>\n<meta property=\"og:description\" content=\"Dapr integration in the Azure API Management (APIM) service is now available, enabling operations teams to expose Dapr microservices as APIs and make those APIs discoverable and easily consumable by developers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Open Source Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-22T16:00:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-24T17:47:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO23_Collaboration_018.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1170\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Mark Chmarny, Vladimir Vinogradsky\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:site\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mark Chmarny, Vladimir Vinogradsky\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/\"},\"author\":[{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/author\/mark-chmarny\/\",\"@type\":\"Person\",\"@name\":\"Mark Chmarny\"},{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/author\/vladimir-vinogradsky\/\",\"@type\":\"Person\",\"@name\":\"Vladimir Vinogradsky\"}],\"headline\":\"Announcing Dapr integration in Azure API Management Service\",\"datePublished\":\"2020-09-22T16:00:56+00:00\",\"dateModified\":\"2025-06-24T17:47:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/\"},\"wordCount\":922,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO23_Collaboration_018.webp\",\"keywords\":[\"Dapr\",\"Kubernetes\",\"Microsoft\",\"Microsoft Azure\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/\",\"name\":\"Announcing Dapr integration in Azure API Management Service | Microsoft Open Source Blog\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO23_Collaboration_018.webp\",\"datePublished\":\"2020-09-22T16:00:56+00:00\",\"dateModified\":\"2025-06-24T17:47:42+00:00\",\"description\":\"Dapr integration in the Azure API Management (APIM) service is now available, enabling operations teams to expose Dapr microservices as APIs and make those APIs discoverable and easily consumable by developers.\",\"breadcrumb\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#primaryimage\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO23_Collaboration_018.webp\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO23_Collaboration_018.webp\",\"width\":1170,\"height\":640},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/opensource.microsoft.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Announcing Dapr integration in Azure API Management Service\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"name\":\"Microsoft Open Source Blog\",\"description\":\"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability\",\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\",\"name\":\"Microsoft Open Source Blog\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft Open Source Blog\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/OpenAtMicrosoft\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Announcing Dapr integration in Azure API Management Service | Microsoft Open Source Blog","description":"Dapr integration in the Azure API Management (APIM) service is now available, enabling operations teams to expose Dapr microservices as APIs and make those APIs discoverable and easily consumable by developers.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/","og_locale":"en_US","og_type":"article","og_title":"Announcing Dapr integration in Azure API Management Service | Microsoft Open Source Blog","og_description":"Dapr integration in the Azure API Management (APIM) service is now available, enabling operations teams to expose Dapr microservices as APIs and make those APIs discoverable and easily consumable by developers.","og_url":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/","og_site_name":"Microsoft Open Source Blog","article_published_time":"2020-09-22T16:00:56+00:00","article_modified_time":"2025-06-24T17:47:42+00:00","og_image":[{"width":1170,"height":640,"url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO23_Collaboration_018.png","type":"image\/png"}],"author":"Mark Chmarny, Vladimir Vinogradsky","twitter_card":"summary_large_image","twitter_creator":"@OpenAtMicrosoft","twitter_site":"@OpenAtMicrosoft","twitter_misc":{"Written by":"Mark Chmarny, Vladimir Vinogradsky","Est. reading time":"4 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#article","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/"},"author":[{"@id":"https:\/\/opensource.microsoft.com\/blog\/author\/mark-chmarny\/","@type":"Person","@name":"Mark Chmarny"},{"@id":"https:\/\/opensource.microsoft.com\/blog\/author\/vladimir-vinogradsky\/","@type":"Person","@name":"Vladimir Vinogradsky"}],"headline":"Announcing Dapr integration in Azure API Management Service","datePublished":"2020-09-22T16:00:56+00:00","dateModified":"2025-06-24T17:47:42+00:00","mainEntityOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/"},"wordCount":922,"commentCount":0,"publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO23_Collaboration_018.webp","keywords":["Dapr","Kubernetes","Microsoft","Microsoft Azure"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/","url":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/","name":"Announcing Dapr integration in Azure API Management Service | Microsoft Open Source Blog","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#primaryimage"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO23_Collaboration_018.webp","datePublished":"2020-09-22T16:00:56+00:00","dateModified":"2025-06-24T17:47:42+00:00","description":"Dapr integration in the Azure API Management (APIM) service is now available, enabling operations teams to expose Dapr microservices as APIs and make those APIs discoverable and easily consumable by developers.","breadcrumb":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#primaryimage","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO23_Collaboration_018.webp","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO23_Collaboration_018.webp","width":1170,"height":640},{"@type":"BreadcrumbList","@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/09\/22\/announcing-dapr-integration-azure-api-management-service-apim\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/opensource.microsoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Announcing Dapr integration in Azure API Management Service"}]},{"@type":"WebSite","@id":"https:\/\/opensource.microsoft.com\/blog\/#website","url":"https:\/\/opensource.microsoft.com\/blog\/","name":"Microsoft Open Source Blog","description":"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability","publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/opensource.microsoft.com\/blog\/#organization","name":"Microsoft Open Source Blog","url":"https:\/\/opensource.microsoft.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft Open Source Blog"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/OpenAtMicrosoft"]}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Open Source Blog","distributor_original_site_url":"https:\/\/opensource.microsoft.com\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/82463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/users\/5562"}],"replies":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=82463"}],"version-history":[{"count":1,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/82463\/revisions"}],"predecessor-version":[{"id":97644,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/82463\/revisions\/97644"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media\/95471"}],"wp:attachment":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=82463"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/post_tag?post=82463"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/content-type?post=82463"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/topic?post=82463"},{"taxonomy":"programming-languages","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/programming-languages?post=82463"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/coauthors?post=82463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}