This is part 32 of azure tutorial. In this video, we'll discuss what is azure api
management service and why should we use it? Let's understand this with a simple example.
Consider this open weather map service. The URL as you can see is https://openweathermap.org and
at the moment, we are on the pricing page. It's a very popular API that provides weather data like
temperature, wind speed, humidity etc. To use this API, we have to subscribe and pay a monthly fee.
There is a free plan as well, but there are limits on it, like how many calls are allowed, what data
is available and for how long etc. With the $40 plan, you can make up to 600 calls per minute and
up to 10 million calls per month, this is a little less restrictive than the free plan. To be able to
use this API in the apps that we are building, we need to subscribe and get an API key. We also
need to know, the available endpoints, supported operations, what to pass as parameters and what we
get back from the API. The main functionality of the API is to provide weather data, in addition to
this main functionality, the API should also have code to limit the number of calls, for example
the free plan only allows 60 calls per minute, so the API should also have code to limit the number
of calls to 60 per minute to prevent misuse and abuse. Like this, there are several non-functional
aspects that most APIs need to have. For example, caching response to improve performance, securing
the API and providing access, documentation that is available endpoints, supported operations,
what to pass as parameters and what we get back. There must be a developer portal or something that
developers and partners can use to subscribe and self-service, that is find documentation,
code samples and maybe an interface to test the API calls. API analytics is another important
aspect which obviously lets you see API usage, for example, the most and least used endpoints,
general health of the API etc. Another common requirement is to package and create a facade of
related API services. So, all these non-functional aspects of the API and much more are provided by
the azure API management service. All these features are available out of the box,
thoroughly tested and highly customizable. Just pay a monthly fee and all these features
are available for our APIs. Just imagine the amount of effort and time it saves.
So, what is azure API management service? Well, it stays on top of your backend API services,
it's like a proxy to your backend APIs. In this specific example, azure API management service
is on top of our two backend APIs, that is, Weather API and Employee API.
Every call to these two backend APIs goes through azure API management service. Now,
azure API management service is made up of three main components - Azure portal,
Developer portal and API gateway. We already know, what is azure portal? We've been using it
throughout this course to create various azure resources like virtual machines,
app service instances, sql databases etc. We also use it to set up and do various things
related to API management. For example, using the azure portal, we can define or import API schema,
package APIs into products, set up policies like quotas or transformations on the APIs, get
insights from analytics and manage users. Don't worry, if you don't understand some of these bits,
we'll see them in action in our upcoming videos in this series. What is developer portal? Well,
as the name implies, the developer portal is for the developers who want to consume your APIs in
the apps that they are building. Using it they can create an account and subscribe to get API keys,
test the API calls, read API documentation and even access analytics on their own usage. Finally,
what is API gateway? Well, it sits on top of your back end APIs. In this specific example, API
gateway sits on top of our two backend APIs, that is weather and employee APIs, and it can do the
following, accepts API calls and routes them to your backend APIs, verifies API keys, JWT tokens,
certificates and other security credentials, enforces usage quotas and rate limits,
caches backend responses, logs call metadata for analytics purposes, above all transforms your API
on the fly without actually modifying your API code, how great is that? So, the point that I'm
trying to make is, azure API management service provides ton of security and performance features,
for example, based on the API access plan you selected, that is free or paid, it limits the
number of calls that are allowed as per the plan, prevents denial of service attacks by using
throttling. Secures backend services by gating access with API keys. Use advanced security
policies like JWT tokens, certificates and other credentials. In short, azure API management system
lets you transform your APIs on the fly without any code changes. Please don't worry if some of
these concepts are confusing at the moment, we'll see them in action in our upcoming videos and I
promise, they will be much clearer at that point. That's it in this video. Thank you for listening.