API Gateway pattern

They are particularly useful in a microservices environment.
If you have a system that consists of many services that are independently built and run in your environment, along with an increase in the number of microservices, there is a rising level of system complexity. You need to hide that complexity from the external API clients. The clients should not be aware that they are talking to service X or Y.
This is where API gateways come into the picture.
The gateway is responsible for dynamically (based on entries in the service discovery) routing all requests to different endpoints.
API Gateways act as reverse proxy between client and backend services. They apply filters and routes requests to backend.
In addition to hiding invocations of specific services or dynamic routing, API Gateways can do a lot of other things since they are the entry points for requests into our systems.
Key points
- Hide invocations of specific services or dynamic routing.
- Track important data, collect metrics of requests, and count other statistics.
- Enrich requests or response headers in order to include some additional information that is usable by the applications inside the system.
- Perform some security actions, such as authentication and authorization, and should be able to detect the requirements for each resource and reject requests that do not satisfy them.
Reading material
https://aws.amazon.com/api-gateway/
https://microservices.io/patterns/apigateway.html
https://www.redhat.com/en/topics/api/what-does-an-api-gateway-do
Questions
TODO
When there is already a proxy (like Apigee proxy) for the requests coming in, and if the requests are routed to a lambda through AWS Gateway, how will the AWS Gateway handle requests from Apigee and use the token for authentication/authorization?