🌿 What?
- Kết hợp với AWS Lambda: kiến trúc không có server.
- Expose REST API.
- Hỗ trợ giao thức WebSocket
- Xử lý API versioning(v1,v2,…)
- Xử lý giữa các môi trường phát triển khác nhau(dev, test, prod, …)
- Xử lý bảo mật(Authen & Authori)
- Tạo API keys
- Kết hợp được với Swagger/Open API để nhanh chóng tạo ra doc.
- Có thể transform và validate requests và responses.
- Gen ra SDK và API specifications.
- Cache lại responses của API.
🌿 Integrations
Kết hợp được với:
- Lambda Function
- HTTP
- Dùng để add rate limit, caching hoặc authen cho users, …
- AWS Service
🌿 Endpoint Types
- Edge-Optimized(default)
- Cho global clients
- Requests sẽ được định tuyến tới các edge location(độ trễ thấp)
- API Gateway chỉ tồn tại trên một region nhưng users ở những chỗ khác vẫn truy cập với độ trễ thấp.
- Region
- Cho những clients ở cùng một region
- Có thể kết hợp thủ công với CloudFront
- Private
- Chỉ có thể kết nối từ VPC thông qua ENI.
- Sử dụng policy để xác định quyền truy cập.
🌿 Security
- Dùng để xác thực người dùng:
- IAM roles(phù hợp với các app nội bộ)
- Cognito (xác định các user bên ngoài - vd như mobiles user)
- Custom Authorizer (cho logic của chúng ta)
- Custom Domain Name HTTPS bằng việc tích hợp AWS Certificate Manager(ACM)
- Nếu sử dụng Edge-Optimized endpoint, certificate phải thuộc về us-east-1
- Nếu sử dụng Regional endpoint, certificate phải nằm trong API Gateway region
- Nếu dùng với Route53, phải sử dụng CNAME hoặc A-alias.