Xây dựng API với Amazon API Gateway

Triển khai Ứng dụng trên AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Ba client, một backend

  • Web, mobile và đối tác cùng gọi một backend
  • Mỗi bên dùng định dạng hơi khác nhau
  • Cửa trước xác thực và chuyển đổi mọi lời gọi

 

Ba loại client kết nối qua một API Gateway duy nhất để định tuyến yêu cầu đến các dịch vụ backend

Triển khai Ứng dụng trên AWS

API Gateway làm gì

API Gateway như một "cửa trước" được quản lý: web và mobile đi qua cổng trung tâm với tính năng định tuyến, xác thực, giới hạn tốc độ và chuyển đổi đến Lambda, endpoint HTTP và dịch vụ AWS

  • Một cửa trước được quản lý trọn vẹn cho API của bạn
  • Xử lý định tuyến, xác thực, giới hạn tốc độ và chuyển đổi
  • Nằm giữa client và backend của bạn
  • Backend: Lambda, endpoint HTTP hoặc dịch vụ AWS
Triển khai Ứng dụng trên AWS

Các kiểu tích hợp

  • Lambda proxy: chuyển cả yêu cầu cho Lambda
  • Lambda non-proxy: bạn ánh xạ trường request/response
  • HTTP: chuyển tiếp đến một backend HTTP
  • MOCK: trả về phản hồi không cần backend

Bốn kiểu tích hợp API Gateway: Lambda proxy chuyển toàn bộ request, Lambda non-proxy dùng mẫu ánh xạ, HTTP chuyển tiếp đến endpoint, và MOCK trả về phản hồi tĩnh

Triển khai Ứng dụng trên AWS

Chuyển đổi request và response

  • Mapping templates định hình lại payload bằng VTL
  • Velocity Template Language biến đổi body, header, tham số
  • Request mapping: từ định dạng client sang định dạng backend
  • Response mapping: từ định dạng backend sang định dạng client

Luồng mẫu ánh xạ VTL: payload của client được chuyển đổi bởi mẫu request trước khi đến backend, rồi phản hồi backend được chuyển đổi bởi mẫu response trước khi trả về client

Triển khai Ứng dụng trên AWS

Xác thực request

Chế độ xác thực request: xác thực body theo JSON schema, xác thực tham số query và header bắt buộc, hoặc cả hai trước khi gọi backend Lambda

  • Loại bỏ input xấu trước khi vào backend
  • Tham số bắt buộc: header, query string, path
  • Model schema: xác thực cấu trúc body JSON
  • Có thể xác thực body, tham số, hoặc cả hai
Triển khai Ứng dụng trên AWS

Mã trạng thái và hợp đồng lỗi

  • Ghi đè mã trạng thái backend để có hợp đồng nhất quán
  • Ánh xạ backend 502 thành 503 gọn gàng cho client
  • Gateway responses: tùy chỉnh nội dung lỗi
  • Client nhận lỗi dự đoán được, bất kể backend

Vòng đời request của API Gateway: xác thực chặn input xấu tại cổng, mẫu ánh xạ định hình input hợp lệ cho backend, mẫu response định dạng đầu ra thành hợp đồng nhất quán cho client

Triển khai Ứng dụng trên AWS

Ghép các phần lại

  • Yêu cầu client → xác thực → chuyển đổi → backend
  • Input xấu bị chặn ngay cổng
  • Input tốt được định hình lại cho backend
  • Phản hồi backend được chỉnh về hợp đồng với client

Vòng đời request của API Gateway: xác thực chặn input xấu tại cổng, mẫu ánh xạ định hình input hợp lệ cho backend, mẫu response định dạng đầu ra thành hợp đồng nhất quán cho client

Triển khai Ứng dụng trên AWS

Cùng luyện tập nào!

Triển khai Ứng dụng trên AWS

Preparing Video For Download...