# API Gateway

## Essentials

* Fully managed service to create and manage your own APIs for your apps
* API Gateways act as a "front door" for your applications, allowing access to data/logic/functionality from your back-end services

### Main Features

* Build RESTful APIs with:
  * Resources
  * Methods (i.e. GET, POST, PUT)
  * Settings
* Deploy APIs to a "Stage" (different envs: i.e. dev, beta, production)
  * Each stage can have it's own throttling, caching, metereing, and logging
* Create a new API version by cloning an existing one.
  * You can create and work on multiple versions of an API (API version control)
* Roll back to previous API deployments
  * History of API deployments are kept
* Custom domain names
  * Custom domain names can point to an API or Stage
* Create and manage API keys for access AND meter usage of the API keys through Amazon CloudWatch Logs
* Set throttling rules based on the number of requests per second (for each HTTP method)
  * Request over the limit throttled (HTTP 429 response)
* Security using Signature v.4 to sign and authorize API calls
  * Temporary credentials generated through Amazon Cognito and Security Token Service (STS)
  * Workflows related to controlling billing through AWS!

### Benefits

* Ability to cache API responses
* DDoS protection via CloudFront
* SDK generation for iOS, Android, and JavaScript
* Supports Swagger (popular framework of API dev tools)
* Request/response data transformation (i.e. JSON IN to XML OUT)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gitbook.nicacton.com/cloud-computing/aws/application-services/api-gateway.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
