{"id":2500,"date":"2023-02-27T08:06:37","date_gmt":"2023-02-27T16:06:37","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/azure-sdk\/?p=2500"},"modified":"2023-02-27T08:06:37","modified_gmt":"2023-02-27T16:06:37","slug":"stable-release-of-spring-cloud-azure-5-0","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/azure-sdk\/stable-release-of-spring-cloud-azure-5-0\/","title":{"rendered":"Announcing the stable release of Spring Cloud Azure 5.0"},"content":{"rendered":"<p>We&#8217;re pleased to announce that Spring Cloud Azure 5.0 is now generally available.<\/p>\n<p>This major release includes the following features, improvements, and documentation updates:<\/p>\n<ul>\n<li>Compatible with Spring Boot 3 and Spring Cloud 2022.0.0<\/li>\n<li>Support for <a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/intro\/passwordless-overview\">passwordless connections<\/a><\/li>\n<li>Updated <a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring\/\">Azure for Spring developers documentation<\/a> to help Spring developers code, deploy and scale Spring applications on Azure<\/li>\n<li>Redesigned <a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/\">Spring Cloud Azure documentation<\/a> with improved scenarios<\/li>\n<\/ul>\n<p><img decoding=\"async\" title=\"Spring Cloud Azure 5.0.0 Overview\" src=\"assets\/spring-cloud-azure-5.0.0-overview.png\" alt=\"Spring Cloud Azure 5.0.0 Overview\" \/><\/p>\n<p>To try Spring Cloud Azure 5.0, add the following dependency BOM to your project:<\/p>\n<pre><code class=\"language-xml\">&lt;dependencyManagement&gt;\r\n  &lt;dependencies&gt;\r\n    &lt;dependency&gt;\r\n      &lt;groupId&gt;com.azure.spring&lt;\/groupId&gt;\r\n      &lt;artifactId&gt;spring-cloud-azure-dependencies&lt;\/artifactId&gt;\r\n      &lt;version&gt;5.0.0&lt;\/version&gt;\r\n      &lt;type&gt;pom&lt;\/type&gt;\r\n      &lt;scope&gt;import&lt;\/scope&gt;\r\n    &lt;\/dependency&gt;\r\n  &lt;\/dependencies&gt;\r\n&lt;\/dependencyManagement&gt;<\/code><\/pre>\n<h2>Spring Boot 3 and Spring Cloud 2022.0.0 integration<\/h2>\n<p>Spring Boot 3 and Spring Cloud 2022.0.0 bring many exciting features, requiring some significant changes to Spring Cloud Azure to fully leverage them.<\/p>\n<h2>Noteworthy changes in this version<\/h2>\n<p>Dependency upgrades:<\/p>\n<ol>\n<li>Deprecated API upgrades, <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/pull\/31543\">Azure\/azure-sdk-for-java#31543<\/a>:<\/li>\n<\/ol>\n<ul>\n<li><code>com.azure.spring.cloud.autoconfigure.aad.implementation.oauth2.AadOAuth2AuthenticatedPrincipal<\/code> class removed<\/li>\n<li><code>com.azure.spring.cloud.autoconfigure.aad.implementation.webapi.AadOboOAuth2AuthorizedClientProvider<\/code> class removed<\/li>\n<li><code>com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationGrantType<\/code> class removed<\/li>\n<li><code>com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter<\/code> class removed<\/li>\n<li><code>AuthorizationGrantType.PASSWORD<\/code> no longer supported<\/li>\n<li><code>com.nimbusds.jwt.proc.DefaultJWTClaimsVerifier#DefaultJWTClaimsVerifier(com.nimbusds.jwt.JWTClaimsSet, java.util.Set&lt;java.lang.String&gt;)<\/code> method replaces <code>com.nimbusds.jwt.proc.DefaultJWTClaimsVerifier#DefaultJWTClaimsVerifier()<\/code><\/li>\n<li><code>AbstractHttpConfigurer<\/code> replaces <code>org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter<\/code><\/li>\n<li><code>spring-cloud-azure-trace-sleuth artifact<\/code> removed<\/li>\n<\/ul>\n<ol start=\"2\">\n<li>Spring Security 6 dependencies upgrades, <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/pull\/31808\">Azure\/azure-sdk-for-java#31808<\/a>:<\/li>\n<\/ol>\n<ul>\n<li><code>org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity<\/code> annotation replaces <code>org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity<\/code><\/li>\n<li><code>org.springframework.security.oauth2.server.resource.authentication.BearerTokenAuthenticationToken<\/code> class replaces <code>org.springframework.security.oauth2.server.resource.BearerTokenAuthenticationToken<\/code><\/li>\n<\/ul>\n<ol start=\"3\">\n<li>Class package path updates and API polishing\/refinement, including reducing the number of public APIs: <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/pull\/32552\">Azure\/azure-sdk-for-java#32552<\/a>, <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/pull\/32582\">Azure\/azure-sdk-for-java#32582<\/a>, <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/pull\/32597\">Azure\/azure-sdk-for-java#32597<\/a>, <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/pull\/32616\">Azure\/azure-sdk-for-java#32616<\/a>, <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/pull\/32712\">Azure\/azure-sdk-for-java#32712<\/a>, <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/pull\/32716\">Azure\/azure-sdk-for-java#32716<\/a>.<\/li>\n<\/ol>\n<p>The following features are planned for future releases:<\/p>\n<ul>\n<li>GraalVM native image<\/li>\n<li>Spring Data Cosmos DB<\/li>\n<li>App Configuration Config and Feature Management<\/li>\n<\/ul>\n<p>The <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/tree\/feature\/spring-boot-3\/sdk\/spring\/spring-cloud-azure-native-reachability\">Spring Cloud Azure Native Reachability client library for Java<\/a> is currently available for beta testing. Give it a try!<\/p>\n<p>Stay tuned for updates!<\/p>\n<h2>Passwordless connections<\/h2>\n<p>Using username\/password credentials to access one application from another significantly increases overall risk profile. An unauthorized user can gain access to the application using a connection string accidentally checked into source control, sent through an insecure email, pasted into the wrong chat, or otherwise illegitimately obtained. Updating your application to use passwordless connections provides dramatically improved security.<\/p>\n<p>Passwordless connections for Java applications to Azure databases and eventing services are generally available with Spring Cloud Azure 5.0. These changes enable you to access services securely without passing usernames and passwords over the wire.<\/p>\n<p><img decoding=\"async\" title=\"Passwordless Code Sample\" src=\"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-content\/uploads\/sites\/58\/2023\/02\/passwordless-code-sample.png\" alt=\"Passwordless Code Sample\" \/><\/p>\n<p>These Azure services currently support passwordless connections:<\/p>\n<table>\n<thead>\n<tr>\n<th>Azure service<\/th>\n<th>Quickstart<\/th>\n<th>Migration guide<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Azure Database for MySQL<\/td>\n<td><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/configure-spring-data-jpa-with-azure-mysql?tabs=passwordless&amp;toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json\">Spring Data JDBC<\/a>\n<a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/configure-spring-data-jdbc-with-azure-mysql?tabs=passwordless&amp;toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json\">Spring Data JPA<\/a><\/td>\n<td><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/migrate-mysql-to-passwordless-connection?toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json&amp;tabs=sign-in-azure-cli%2Cjava%2Capp-service%2Capp-service-identity\">Delete passwords and migrate<\/a><\/td>\n<\/tr>\n<tr>\n<td>Azure Database for PostgreSQL<\/td>\n<td><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/configure-spring-data-jpa-with-azure-postgresql?tabs=passwordless&amp;toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json\">Spring Data JDBC<\/a>\n<a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/configure-spring-data-jdbc-with-azure-postgresql?tabs=passwordless&amp;toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json\">Spring Data JPA<\/a><\/td>\n<td><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/migrate-postgresql-to-passwordless-connection?toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json&amp;tabs=sign-in-azure-cli%2Cjava%2Cservice-connector%2Cservice-connector-identity%2Cassign-role-service-connector\">Delete passwords and migrate<\/a><\/td>\n<\/tr>\n<tr>\n<td>Azure SQL Database<\/td>\n<td><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/deploy-passwordless-spring-database-app?tabs=sqlserver&amp;toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json\">Spring Data JDBC<\/a>\n<a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/deploy-passwordless-spring-database-app?tabs=sqlserver&amp;toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json\">Spring Data JPA<\/a><\/td>\n<td><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/migrate-sql-database-to-passwordless-connection?toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json&amp;tabs=java%2Capp-service%2Cassign-role-service-connector\">Delete passwords and migrate<\/a><\/td>\n<\/tr>\n<tr>\n<td>Event Hubs \u2013 Kafka<\/td>\n<td><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/migrate-kafka-to-passwordless-connection?tabs=azure-portal%2Csign-in-azure-cli%2Cspring-cloud-stream-kafka%2Cservice-connector%2Cassign-role-azure-portal\">Spring Cloud Stream Binder for Kafka<\/a>\n<a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/migrate-kafka-to-passwordless-connection?tabs=azure-portal%2Csign-in-azure-cli%2Cspring-kafka%2Cservice-connector%2Cassign-role-azure-portal\">Spring Kafka<\/a><\/td>\n<td><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/migrate-kafka-to-passwordless-connection?toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json&amp;tabs=azure-portal%2Csign-in-azure-cli%2Cjava-kafka%2Cservice-connector%2Cservice-connector-identity%2Cassign-role-service-connector\">Delete passwords and migrate<\/a><\/td>\n<\/tr>\n<tr>\n<td>Storage<\/td>\n<td><a href=\"https:\/\/learn.microsoft.com\/azure\/storage\/blobs\/storage-quickstart-blobs-java?toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json&amp;tabs=powershell%2Cmanaged-identity%2Croles-azure-portal%2Csign-in-azure-cli\">Storage Blob<\/a>\n<a href=\"https:\/\/learn.microsoft.com\/azure\/storage\/queues\/storage-quickstart-queues-java?toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json&amp;tabs=powershell%2Cpasswordless%2Croles-azure-portal%2Cenvironment-variable-windows%2Csign-in-azure-cli\">Storage Queues<\/a><\/td>\n<td><a href=\"https:\/\/learn.microsoft.com\/azure\/storage\/common\/migrate-azure-credentials?toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json&amp;tabs=roles-azure-portal%2Csign-in-azure-cli%2Cservice-connector%2Cservice-connector-identity%2Cassign-role-service-connector\">Delete passwords and migrate<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Our passwordless journey doesn&#8217;t end here. Support for more Azure services is planned and under development.<\/p>\n<h2>Spring Initializr<\/h2>\n<p>The Azure Support module in Spring Initializr now supports Spring Boot 3, so you can begin your Spring Cloud Azure 5.0 journey directly from the Spring Initializr.<\/p>\n<p><img decoding=\"async\" title=\"Spring Initializr with Azure Support\" src=\"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-content\/uploads\/sites\/58\/2023\/02\/spring-initializr-azure-support.png\" alt=\"Spring Initializr with Azure Support\" \/><\/p>\n<h2>Documentation<\/h2>\n<p>Good documentation is a key part of Spring Cloud Azure. We\u2019ve created a new online resource, <a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring\/\">Azure for Spring developers<\/a>, to help Spring developers code, deploy, and scale their Spring applications on Azure. Whether you&#8217;re familiar with Spring and unfamiliar with Azure services or the other way around \u2013 or new to both \u2013 this site will help you learn. Content will be expanded and updated continuously.<\/p>\n<p>In addition, we\u2019ve redesigned the <a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/java\/spring-framework\/\">Spring Cloud Azure documentation<\/a> to help developers more easily find what they need, combined with useful scenarios.<\/p>\n<p><img decoding=\"async\" title=\"Spring on Azure\" src=\"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-content\/uploads\/sites\/58\/2023\/02\/spring-on-azure.png\" alt=\"Spring on Azure\" \/><\/p>\n<h2>Other bug fixes and feature improvements<\/h2>\n<ul>\n<li>Support auto startup for the autoconfigured Service Bus Processor client by enabling new property <code>spring.cloud.azure.servicebus.processor.auto-startup<\/code> (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues\/29997\">Azure\/azure-sdk-for-java#29997<\/a>)<\/li>\n<li>Provide property <code>spring.cloud.azure.eventhubs.kafka.enabled<\/code> to enable\/disable Spring Cloud Azure OAuth2 support for Event Hubs for Kafka (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues\/30574\">Azure\/azure-sdk-for-java#30574<\/a>)<\/li>\n<li>Support connecting to Azure AD via proxy (NOTE: custom RestTemplateCustomizer bean must be provided) (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues\/26493\">Azure\/azure-sdk-for-java#26493<\/a>)<\/li>\n<li>Support spring-cloud-azure-stream-binder-eventhubs connection to Azure China eventhub (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues\/30936\">Azure\/azure-sdk-for-java#30936<\/a>)<\/li>\n<li>Resolved issues in Spring Cloud Stream Azure Kafka with Managed Identity credential refresh (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues\/30719\">Azure\/azure-sdk-for-java#30719<\/a>)<\/li>\n<li>Removed logged warnings for Kafka passwordless autoconfiguration (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues\/31182\">Azure\/azure-sdk-for-java#31182<\/a>)<\/li>\n<li>Enabled the token authentication converter and Azure AD Resource Server configurer adapter to accept custom JWT granted authorities converter (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues\/28665\">Azure\/azure-sdk-for-java#28665<\/a>)<\/li>\n<li>Deleted properties (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/pull\/32465\">Azure\/azure-sdk-for-java#32465<\/a>):\n<ul>\n<li><code>spring.jms.servicebus.username<\/code><\/li>\n<li><code>spring.jms.serviebus.password<\/code><\/li>\n<li><code>spring.jms.serviebus.remote-uri<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>JacksonHttpSessionOAuth2AuthorizedClientRepository.getAuthorizedClients<\/code> now returns an unmodifiable Map (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues\/31190\">Azure\/azure-sdk-for-java#31190<\/a>)<\/li>\n<li><code>RestTemplate<\/code> used to get access token now contains only the two required converters (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues\/31482\">Azure\/azure-sdk-for-java#31482<\/a>)<\/li>\n<li><code>RestOperations<\/code> now properly configured when <code>jwkResolver<\/code> is null (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues\/31218\">Azure\/azure-sdk-for-java#31218<\/a>)<\/li>\n<li>Fixed duplicated &#8220;scope&#8221; parameter (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues\/31191\">Azure\/azure-sdk-for-java#31191<\/a>)<\/li>\n<li>Updated <code>NimbusJwtDecoder<\/code> to use <code>RestTemplateBuilder<\/code> instead of <code>RestTemplate()<\/code> (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues\/31233\">Azure\/azure-sdk-for-java#31233<\/a>)<\/li>\n<li>Resolved NoClassDefFoundError for JSONArray (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues\/31716\">Azure\/azure-sdk-for-java#31716<\/a>)<\/li>\n<li>Resolve issues appending <code>spring.main.sources<\/code> configuration from Spring Cloud Stream Kafka binder (<a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/pull\/31715\">Azure\/azure-sdk-for-java#31715<\/a>)<\/li>\n<\/ul>\n<h2>Feedback<\/h2>\n<p>Feedback and contributions are always welcome. You can reach us on <a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/spring-cloud-azure\">Stack Overflow<\/a> or <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/issues?q=is%3Aissue+is%3Aopen+label%3Aazure-spring\">GitHub<\/a>.<\/p>\n<h2>Resources<\/h2>\n<p>To learn more about Spring Cloud Azure, visit the following links:<\/p>\n<ul>\n<li><a href=\"https:\/\/aka.ms\/spring\/docs\">Reference documentation<\/a><\/li>\n<li><a href=\"https:\/\/aka.ms\/spring\/msdocs\">Conceptual documentation<\/a><\/li>\n<li><a href=\"https:\/\/aka.ms\/spring\/samples\">Code samples<\/a><\/li>\n<li><a href=\"https:\/\/aka.ms\/spring\/versions\">Spring versions mapping<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This post announces the stable release of Spring Cloud Azure 5.0.0.<\/p>\n","protected":false},"author":108073,"featured_media":2507,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[160,871,872],"class_list":["post-2500","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure-sdk","tag-java","tag-spring","tag-spring-cloud-azure"],"acf":[],"blog_post_summary":"<p>This post announces the stable release of Spring Cloud Azure 5.0.0.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts\/2500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/users\/108073"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/comments?post=2500"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts\/2500\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/media\/2507"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/media?parent=2500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/categories?post=2500"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/tags?post=2500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}