Micro Service Architecture is still charming and is widely adopted by the software industry to develop the software application in small individual domain based self exuecutables that can be independentally deployed as a single unit.
Trend shows software industry are making Micro Services architecture as there mainstream.
Micro Service Architecture result in need of Api Management to be part of the Micro Service Architecture.
Question comes Why it’s need to have an Api Management with Micro Services Architecture and what problem it solves.
In this blog we will try to explore thos features of Azure Api Management.
Why API Management?
Api Management is an integration service provided by Microsoft Azure. It is used to publish internal and external APIs or consume your own APi that communicate with the back end API to cater to the need of our various clients.
APM sits between your client and APIs and provide many features on top to your back-end APIs.
Features of API management
- Security Door for all the back end APIs
- APIs Governing
- Help in building APIs strategies/ Analysis
- Design, Document, Publish and Analyze
Organizations are exposing their APIs to the end customers which brings us challenge of security threat and hacks which might lead to end of bussiness in some cases.
It is also important to ensure the usage of the APIs is throttled and controlled that supports the load on the back end APIs. APIs need to governed and compliant with regulatory guidelines following authentication and autorization and auditing support.
Api Management supports rate call limits, response caching, Ip filtering, mock responses, set custom headers, usage quota, validate JWT and other custom policies required for business need.
APIs Governing (Exposing the APIs and versioning to external or internal clients)
With rapidly changing demands of customers and market needs. It is really vital for API publishers to ensure that any change that they make do not violate the applications/ clients that consume those APIs.
If the API publishers cannot avoid the breaking change in the API they have to provide the new version of the API to the customer and support the previous verision of the API for the existing customers.
Organization needs to keep track of the usage and performance of the APIs, API management exposes the analytics to ensure the usage, health and performance of APIs.
Api strategy Design and Develop
Api first development is mainstream when working with Distributed Application Architecture that have high degree of complex problems. Api management allows the team to have API first approach which creates the agility to develop team.
Team is focused towards best practises like open api specification, api urls, error handlings, api monitoring and versioning of APIs.
Components of Azure Api Management
- API Gateway
- Azure Portal
- Developer Portal
API Gateway: It is main component of Azure API Management and act as a endpoint of APIM. It provides following benefits.
- Policy based routing: Routing the client request to the requested back end service.
- CORS : Set Cross Origin polices request to allow client to call the back end service.
- Security: Verify Jwt token, certificate, Azure Active Directory based authentication.
- Rate call limit and usage quota: Restricting call limit for the client based on their subscription.
- Transformation: Api request of client can be transformed to another format like json to soap vice versa.
- Response caching: Cache the response of the API to reduce the number of calls going to back end service
- Import or Add new back-end API using Open Api specification, web service definition language, WADL, Logic apps, Web Apps and Function App.
- Set policies for the Apis (Inbound and OutBound policies) which can act globally for all APIs or for single API.
- Monitoring Insights: Allows insights of API via Azure Application Insight and Azure Monitor.
- Manage API access for the users.
Once the team is ready to expose their API to end customers. The end customer developer can sign up and login to the portal and understand the API with documentation with input and output format based on the contract.
- Azure Api Management also provide custom style for the branding purpose.
- Developers can read the API documentation and start implementing the APIs as per business requirement
- Access API call usages
- Use developer console to call the APIs for testing purpose and see the response.