{"id":40146,"date":"2021-03-22T00:30:59","date_gmt":"2021-03-22T07:30:59","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/premier-developer\/?p=40146"},"modified":"2021-03-24T06:03:25","modified_gmt":"2021-03-24T13:03:25","slug":"calling-a-helper-api-in-an-azure-apim-inbound-policy","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/premier-developer\/calling-a-helper-api-in-an-azure-apim-inbound-policy\/","title":{"rendered":"Calling a Helper API in an Azure APIM Inbound Policy"},"content":{"rendered":"<p><a class=\"x-hidden-focus\" href=\"https:\/\/www.linkedin.com\/in\/bryansoltis\/\" target=\"_blank\" rel=\"noopener noreferrer\">Bryan Soltis<\/a> explores how to incorporate API authentication into APIM.<\/p>\n<hr \/>\n<div class=\"blogperex\">Azure API Management is quickly becoming one of my favorite parts of the Azure platform. From SOAP (shudder) to REST APIs, developers can quickly register and secure their existing interfaces using Azure APIM. By implementing policies, they can transform requests, validate client\/subscription information, check rate limits, and a whole mess of other features. And yes, there is a policy to allow you to call a completely different API as part of your process. Let me show you!<\/div>\n<div class=\"blogcontent\">\n<p>With Azure APIM, developers can register and expose their APIs, regardless of where they are located. The built-in developer portal and subscription\/products system allows for an extremely customizable consumer experience, as organizations can tailor their API offerings to their users\u2019 needs. It&#8217;s an extremely versatile tool in the Azure arsenal and one every API developer should know.<\/p>\n<p>Recently, I had a client that was looking to migrate hundreds of existing APIs to Azure APIM. Part of this change would be to support their existing client credentials\/logins that they validate with a home-grown API within their network. The challenge was how do they incorporate that authentication API into their APIM calls? Inbound Policies to the rescue!<\/p>\n<p>I created a PoC to show how this can be done within APIM. Let\u2019s see how I did it.<\/p>\n<p><a href=\"https:\/\/soltisweb.com\/blog\/detail\/2021-03-16-callinahelperapiinanazureapiminboundpolicy\">Check out the full walk-through on Bryan&#8217;s blog<\/a>.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>With Azure APIM, you can completely control how developers consume your services. Through policies, you can transform data, validate requests, integrate backends, and probably cook the world&#8217;s best cheeseburger. This powerful feature enables complex systems and architectures to be seamlessly connected, ensuring your data and process stay safe.<\/p>\n","protected":false},"author":582,"featured_media":40147,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10611],"tags":[24,152,10615],"class_list":["post-40146","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-api-management","tag-azure","tag-azure-api-manager","tag-bryan-soltis"],"acf":[],"blog_post_summary":"<p>With Azure APIM, you can completely control how developers consume your services. Through policies, you can transform data, validate requests, integrate backends, and probably cook the world&#8217;s best cheeseburger. This powerful feature enables complex systems and architectures to be seamlessly connected, ensuring your data and process stay safe.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts\/40146","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/users\/582"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/comments?post=40146"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts\/40146\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/media\/40147"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/media?parent=40146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/categories?post=40146"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/tags?post=40146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}