An API gateway is a programming layer that sits between a client and a collection of microservices. It acts as a single point of entry for a defined group. API stands for application program interface and is a set of routines, protocols, and tools for building software applications. An API gateway acts as a reverse proxy to accept all API calls, collect the services required to fulfill them, then return the appropriate result.
For enterprises, APIs are deployed using an API gateway because it can handle common tasks that are used across a system of API services such as user authentication, rate limiting, and statistics. This is valuable for when clients built with microservices make use of multiple, contrasting APIs.
An API gateway can handle requests in one of two ways: either by using multiple microservices and combining the results to determine the best path, or by routing/proxying the request to the appropriate service. It can translate public web protocols and web-unfriendly protocols that are internally used.
An API gateway is used to separate the client interface from a backend implementation so that clients have a simple and dependable experience regardless of the complexity. Below are possible uses for an API gateway:
Along with everything else, an API gateway is another system that must be developed, deployed, and managed, which increases complexity and requires a learning curve. Response time can also be slower because of the additional movement through the gateway.