# API Gateway Overview

* Amazon API Gateway is a **fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale**.<br>

* **APIs act as the "front door" for applications to access data, business logic**, or functionality from your backend services.<br>

* Using API Gateway, you can **create RESTful APIs and WebSocket APIs** that enable real-time two-way communication applications.<br>

* API Gateway **supports containerized and serverless workloads**, as well as web applications.

* API Gateway has **no minimum fees or start-up costs**.
  * You **pay for the API calls you receive and the amount of data transferred out**.

## Integrations

* After setting up an API method, you **must integrate it with an endpoint in the backend**.
  * A **backend endpoint is also referred to as an integration endpoint** and can be **a Lambda function, an HTTP webpage, or an AWS service action**.<br>
* **Lambda Function**
  * You can **integrate an API method with a Lambda function** using Lambda proxy integration or Lambda non-proxy (custom) integration.<br>
* **HTTP**
  * &#x20;This type of integration **lets an API expose HTTP endpoints in the backend**.<br>
* **AWS Service**
  * This type of integration **lets an API expose AWS service actions**.

## Endpoint Types

* An **API endpoint type refers to the hostname of the API**.<br>
* **Edge-optimized API endpoints**
  * This is the **best for geographically distributed clients**.
    * **API requests are routed to the nearest CloudFront Point of Presence (POP)**.<br>
  * This is the **default endpoint type** for API Gateway REST APIs.<br>
* **Regional API endpoints**
  * This is **intended for clients in the same region**.<br>
  * When a client running on an EC2 instance calls an API in the same region, or when an API is intended to serve a small number of clients with high demands, a **regional API reduces connection overhead**.<br>
* **Private API endpoints**
  * This is an API endpoint that **can only be accessed from your Amazon Virtual Private Cloud (VPC) using an interface VPC endpoint**, which is an endpoint network interface (ENI) that you create in your VPC.
