Chương II Phân tích, thiết kế API Gateway
2.1. Các thành phần của dịch vụ API Gateway
Dịch vụ API Gateway sẽ bao gồm một nhóm bao gồm hai ứng dụng. Trong đó có ứng dụng cổng trung gian (API Gateway), ứng dụng quản lý API trên cổng trung gian (API Management). API Gateway sẽ kết nối trực tiếp với các dịch vụ hiện có (Existing Services) bên trong môi trường Runtime Backend. Dưới đây là hình ảnh minh họa cho các thành phần của dịch vụ API Gateway
Hình 2. 1. Các thành phần cơ bản của API Gateway
API Management: Đây là phần để ta tạo các API, chia sẻ tài liệu, cung
cấp khóa và thu thập phản hổi các tính năng.
API Gateway: Bảo vệ, quản lý và cân bằng các cuộc gọi API. Đây là một
proxy API đơn giản chặn các yêu cầu API và áp dụng các chính sách như kiểm soát ngăn chặn và đảm bảo an toàn. Điều chỉnh lượng truy cập vào API, bảo đảm cho API trước các cuộc tấn công. Xử lý tất cả các hoạt động liên quan bảo mật và phát hành khóa. Kiểm tra tính hợp lệ của các đăng
ký. Nó cũng là công cụ thu thập số liệu thống kê sử dụng API
Dưới đây là các mô hình luồng dữ liệu sau khi vào API Gateway:
Request BLACK LIST YES SYSTEM YES API
YES
APPLICATION
YES NO
RESPONSE ERROR
ENDPOINT
YES
RESPONSE NO
NO
MÔ HÌNH TỔNG THỂ
Hình 2. 2. Mô hình tổng thể luồng dữ liệu
MÔ HÌNH CHI TIẾT
BLACK LIST SYSTEM API APPLICATION END-POINT
Giai đoạn
REQUEST IP Block
IP YES
Blocked
NO Request
Count Rate Limit NO
error
YES
Bandwidth Rate Limit NO
error YES
Exist URI Not NO
Found
YES
API public NO
ApiBlocked YES
Token key NO
TokenKey
Not
Found
YES
Token is valid TokenKey NO
Invalid YES
Endpoint Error Backend NO
Error
YES Response
Hình 2. 3. Mô hình chi tiết luồng dữ liệu
Mô tả tổng quan các tính năng của API Gateway:
Kiểm tra Black List
Mục đích của kiểm tra Black list:
o Không cho phép một IP hoặc một dải IP được quyền truy cập vào hệ thống.
o Không cho phép một IP hoặc một dải IP truy cập vào 1 hoặc nhiều API của hệ thống.
o Không cho phép một IP hoặc một dải IP truy cập vào 1 hoặc nhiều Application của hệ thống.
Kiểm tra điều kiện mức System
Sau khi kiểm tra IP request lên không nằm trong danh sách Black list hệ thống tiếp tục kiểm tra điều kiện Mức System.
Mục đich của điều kiện mức System, điều kiện này được đặt ra cho toàn bộ hệ thống:
o Check số lượng request vào hệ thống.
o Check số lượng Bandwidth request vào hệ thống.
Kiểm tra điều kiện Request Bandwidth:
Khi 1 request được gọi vào hệ thống, hệ thống sẽ tính toán dung lượng request (a)gửi lên cộng với tổng số dung lượng request đã thực hiện gọi lên thành công trước đó(b). Nếu số (a+b) <= QUOTA thì hệ thống chuyển sang kiểm tra điều kiện tiếp theo. Ngược lại hệ thống sẽ dừng lại không tính toán mà gửi lại cho Client thông báo: Số lượng dung lượng request vượt quá ngưỡng giới hạn.
Sau mỗi lần request lên hệ thống thành công, hệ thống sẽ tính toán dung lượng request gọi vào hệ thống và sẽ cộng dồn các dung lượng lại.
Kiểm tra điều kiện Request Count:
Khi 1 request được gọi vào hệ thống, hệ thống sẽ tính toán request (a)gửi lên cộng với tổng số request đã thực hiện gọi lên thành công trước đó(b). Nếu số (a+b) <= QUOTA thì hệ thống chuyển sang kiểm tra điều kiện tiếp theo. Ngược lại hệ thống sẽ dừng lại không tính toán
mà gửi lại cho Client thông báo: Số lượng request vượt quá ngưỡng giới hạn.
Sau mỗi lần request lên hệ thống thành công, hệ thống sẽ tính toán request gọi vào hệ thống và sẽ cộng dồn các request lại.
Kiểm tra điều kiện mức API:
Sau khi kiểm tra và pass qua mức System hệ thống kiểm tra mức API.
Mục đich của điều kiện mức API:
o Kiểm tra xem URL của Api request lên có tồn tại hay không.
o Kiểm tra xem API trạng thái có đươc Published hay không.
Kiểm tra URL: hệ thống sẽ đọc URL để lấy thông tin: {context},
{version},{parttern} có trong bảng API version hay không? Nếu có chuyển sang kiểm tra điều kiện tiếp theo, nếu không có dừng lại và trả kết quả về cho Client với nội dung URL không tồn tại.
Kiểm tra xem API có ở trạng thái Published: hệ thống sẽ đọc
URL để lấy thông tin: {context},{version} có trong bảng API version để lấy trạng thái CURRENT_STATE = 1. Nếu đúng hệ thống chuyển sang kiểm tra điều kiện tiếp theo. Nếu không đúng hệ thống dừng lại và trả kết quả về cho Client nội dung API hiện đang không được Public.
Kiểm tra điều kiện mức Application
Sau khi pass qua các điều kiện API hệ thống chuyển sang mức kiểm tra Application.
Mục đich của điều kiện mức Application:
o Check xem Token gửi lên có đúng hay không.
o Check xem API này có đúng là được gán cho Application với Token truyền lên hay không.
o Check API được gán cho Application có Unlocked hay không.
o Kiểm tra điều kiện Request Bandwidth Application
o Kiểm tra điều kiện Request Count Application
Định tuyến và kiểm tra với End-Point
Sau khi pass qua các điều kiện hệ thống chuyển sang mức kiểm tra End-Point,
Mục đích: Kiểm tra thực hiện lấy dữ liệu từ End-Point.
Request sẽ được gửi sang End-Point, Nếu End-Point lỗi hệ thống trả dừng lại và trả về kết quả cho client là End-point hiện đang bị lỗi. Nếu việc gọi sang End-Point không bị lỗi hệ thống trả về cho client các kết quả nhận được từ End-point.