Published on
Ngày xuất bản:

Serverless Pattern 01: REST API (AWS)

Authors
  • avatar
    Name
    Tu Tran

Dù bạn là lập trình viên front end hay back end, thì chắc chắn bạn đã từng nghe và biết đến REST API. Đây là cách thiết kế API phổ biến nhất hiện nay do tính trực quan, dễ hiểu, dễ tiếp cận.

Để xây dựng REST API chúng ta cần có 3 serverless services:

  • API Gateway: cửa ngõ, nơi đầu vào tiếp nhận và cho phép bên ngoài có thể tiếp cận vào trong hệ thống
  • Lambda Function: Xử lý các request gửi đến API Gateway
  • DynamoDB: nơi lưu trữ data
API Gateway

API Gateway chính là cảnh cửa (API) cho phép bên ngoài có thể tiếp cận và gửi yêu cầu đến hệ thống. Mỗi khi front end gửi 1 request đến API Gateway, 1 Lambda function sẽ được kích hoạt để xử lý request đó. Tương ứng với từng endpoint mà chúng sẽ có các lambda function khác nhau. ****

Cách xử lý mà đa phần các developer khuyên dùng đó là bạn tạo các Lambda function riêng biệt với từng URL API (ví dụ: /users, /users/1, /search), thậm chí cả với các phương thức HTTP (ví dụ: GET, POST, DELETE, PUT).

Trong hầu hết các trường hợp, các Lambda function nên có kích cỡ size nhỏ, gọn, và chỉ thực hiện 1 nhiệm duy nhất. Tuy nhiên trong 1 vài tinh huống, bạn hoàn toàn có thể sử dụng Lamda để xử lý logic phức tạp, thậm chí gọi API đến các nguồn khác nhau.

Dữ liệu thông thường sẽ được lưu trong DynamoDB table. Tuy nhiên, không có gì ngăn cản các Lambda function truy cập vào các database bên ngoài hoặc gọi đến 1 API khác để thực hiện yêu cầu.