What is API Gateway & Why I Should Use It?

Originally published at https://www.systango.com

What is API Gateway

The day you plan to design and develop your API, you are likely to encounter a number of hurdles and thoughts. Your mind is likely to wrestle with several questions like:

  • What about versioning?
  • Should it be RESTful?
  • How to implement a RESTful API?
  • How to handle different stages (development, testing, production)?

API Gateway is the answer to target those pain points. It makes it easy to version APIs, monitor events (like usage of a certain API method), scale the API independently, roll out APIs for different stages and create RESTful services.

An API gateway is the heart and soul of an API management solution. It acts as the only entryway into a system allowing multiple APIs or microservices to act cohesively and provide a uniform, gratifying experience to the user. The most important role the API gateway plays is ensuring reliable processing of every API call. Moreover, the API gateway provides the ability to design API specifications, and aid in providing enterprise-grade security and managing APIs centrally.

Why do we need an API Gateway?

API Gateway can be used as an enforcement point of API governance policies. Following are the key reasons to use API Gateway:

Authentication & Security – API Gateway enforces to have standard authentication & security across all services. This allows to avoid all applications implement duplicate functionality at service level and developers can focus on business logic.

A major benefit of using API gateways is that they let programmers to encapsulate the internal structure of an app in multiple ways, depending upon the use case. This is because apart from accommodating direct requests, gateways can be used to invoke different back-end services and aggregate the results.

API Monitoring & Insights – API Gateway helps to gain visibility into performance, availability and functional correctness via features specifically designed to monitor. API monitoring feature provides the measurement of how long a routine takes to execute, how often it is called, where it is called from and how much of total time is spent executing that transaction. Such data can be used to generate accurate insights to identify the behavior of application deployment.

Rate Limiting – API Gateways are able to handle requests that go over the limit. This prevents our service API from being overwhelmed by too many requests. As an API developer, we can set the limits for individual API stages or methods to improve overall performance across all APIs in your account. Alternatively, one can enable usage plans to restrict client request submissions to within specified request rates and quotas. This limits the overall request submissions so that they don’t go significantly past the account-level throttling limits.

API Discovery & Routing – Dynamic discovery and dynamic routing are key functionality in API Gateway. Application development goes through different life cycle stages. Dev, test, staging, and prod are very common stages across organisations. In the development stage, the developer needs to discover Microservices for inter-communication. In addition to discovering, these inter-communication links should work in different environments without altering anything.

Loadbalance & Failover – API Gateway enhances the availability of our API by providing in-built support for load balancing and failover across multiple backend server instances.

API Shaping – API Gateway can optimise the API responses depending on the nature of the API consumer. For example, if the API consumer is a mobile device, we can strip down some content of the response to optimise bandwidth usage compared to a web consumer.

API Composition –  API Gateway plays a major role in composition especially when we aggregate application responses and create a single composite response.

Mediation & Transformation – Mediation and transformation are useful in case when we require Microservice consumers be served along with legacy consumers.

API GATEWAY RATE LIMITING PLANS

The API resources bundled in an API product can come from one or more APIs, so you can mix and match resources to create specialised feature sets, as shown in the following figure

A developer can create multiple API products to address different use cases solving specific needs. For example, you can build an API product that bundles a number of mapping resources to enable coders to easily integrate map feature into their applications. Moreover, you can set different properties on each API product, like different pricing levels. For example, you might offer the following API product combinations:

  • An API product offering a low access limit, such as 1000 requests per day, for a bargain price. A second API product providing access to the same resources, but with higher access limit and a higher price.
  • A free API product offering read-only access to resources. A second API product providing read/write access to the same resources for a small charge.

Moreover, users control access to the API resources in an API product. For instance, you can bundle resources that can be accessed only by the internal development team or by paying customers only.

Summary

For most microservices‑based apps, it makes complete sense to implement an API Gateway that acts as a single entry point into a system. The API Gateway is responsible for request routing, composition, and protocol translation. It provides each of the application’s clients with a custom API. The API Gateway can also mask failures in the backend services by returning cached or default data.

Thanks for reading

If you liked this post, share it with all of your programming buddies!

Follow us on Facebook | Twitter

Further reading about Microservices

An Introduction to Microservices

What is Microservices?

Build Spring Microservices and Dockerize Them for Production

Best Java Microservices Interview Questions In 2019

Build a microservices architecture with Spring Boot and Spring Cloud

Design patterns for microservices 🍂 🍂 🍂

Kotlin Microservices With Micronaut, Spring Cloud, and JPA

Build Spring Microservices and Dockerize Them for Production

Secure Service-to-Service Spring Microservices with HTTPS and OAuth 2.0

Build Secure Microservices with AWS Lambda and ASP.NET Core


#microservices #api #web-development #web-service

What is API Gateway & Why I Should Use It?
22.55 GEEK