Pre-function
Tổng quan
Chính sách Pre-function cho phép người dùng thực thi các kịch bản tùy chỉnh trước khi một yêu cầu được xử lý. Chính sách này cho phép người dùng thay đổi các yêu cầu một cách động bằng cách thêm, xóa hoặc biến đổi các tham số yêu cầu, tiêu đề và nội dung thân.
Chính sách Pre-function thường được sử dụng cho:
- Data Masking: Che giấu dữ liệu nhạy cảm như số nhận dạng cá nhân trước khi chúng đến backend.
- Query String Manipulation: Thay đổi hoặc lọc các tham số truy vấn một cách động.
- Token Validation: Thực hiện logic xác thực và bảo mật.
- Routing Control: Thay đổi quyết định định tuyến dựa trên các thuộc tính yêu cầu.
Chi tiết cấu hình
Chính sách Pre-function bao gồm một code editor nơi người dùng viết các kịch bản. Giao diện bao gồm các thành phần sau:
Trình chỉnh sửa mã
editor là khu vực chính nơi người dùng có thể viết và sửa đổi các kịch bản Lua tùy chỉnh cho các giai đoạn thực thi khác nhau của vòng đời yêu cầu API. Có bốn tab có sẵn trong trình chỉnh sửa mã:
- Access: Mã được nhập ở đây sẽ được thực thi trong giai đoạn truy cập, cho phép người dùng thao tác logic cấp yêu cầu như xác thực, tiêu đề, viết lại đường dẫn, v.v.
- Header Filter: Được sử dụng để thay đổi các tiêu đề phản hồi trước khi chúng được gửi lại cho khách hàng.
- Body Filter: Cho phép thao tác nội dung thân phản hồi, hữu ích cho việc biến đổi hoặc che giấu nội dung phản hồi.
- Log: Được sử dụng để thực hiện các hành vi ghi nhật ký dựa trên dữ liệu yêu cầu hoặc phản hồi sau khi yêu cầu đã được xử lý.
Mỗi tab chứa một trình chỉnh sửa mã riêng biệt và quyền truy cập vào Snippets và Examples giúp tăng tốc độ phát triển.
Mã phải được viết và lưu riêng biệt trong mỗi tab nếu nhiều giai đoạn thực thi sẽ được sử dụng.
Snippets (Khối mã định nghĩa sẵn)
Phần Snippets cung cấp các khối mã định nghĩa sẵn mà người dùng có thể chèn vào trình chỉnh sửa. Những điều này giúp người dùng nhanh chóng thực hiện các thay đổi yêu cầu thường dùng mà không cần phải viết mã từ đầu.
Danh sách các snippets:
Snippets | Description |
---|---|
JSON Parser | Tải và xử lý các thân yêu cầu định dạng JSON. |
Get Request Raw Body | Lấy toàn bộ thân yêu cầu trước khi xử lý. |
Set Service Request Raw Body | Thay đổi thân yêu cầu trước khi chuyển tiếp đến backend. |
Get Request Method | Lấy phương thức HTTP (GET, POST, v.v.). |
Get Request Path | Lấy đường dẫn yêu cầu đầy đủ. |
Get Request Header | Trích xuất giá trị từ các tiêu đề yêu cầu cụ thể. |
Set Request Header | Thay đổi hoặc thêm các tiêu đề yêu cầu một cách động. |
Set Response Exit | Kết thúc một yêu cầu và trả về một phản hồi tùy chỉnh. |
Set Service Host | Thay đổi máy chủ đích một cách động. |
Set Service Request Scheme | Thay đổi sơ đồ yêu cầu (http hoặc https). |
Set Service Request Path | Thay đổi đường dẫn yêu cầu trước khi gửi đến backend. |
Phần Ví dụ
Phần này chứa các kịch bản ví dụ định nghĩa sẵn thể hiện các triển khai thực tế của chính sách Pre-function. Những ví dụ này phục vụ như các mẫu cho người dùng nhanh chóng thực hiện các kịch bản phổ biến.
Danh sách các ví dụ:
Examples | Description |
---|---|
Che giấu dữ liệu | Che giấu thông tin nhạy cảm trong các tải yêu cầu. Thay thế Số Đăng Ký Cư Trú Hàn Quốc khi nó xuất hiện như một giá trị trong chuỗi truy vấn bằng “SSN-DATA” và tiếp tục định tuyến. |
Thao tác chuỗi truy vấn | Xóa tất cả các chuỗi truy vấn ngoại trừ khóa "service" và giá trị tương ứng của nó. Lọc các tham số dựa trên điều kiện định tuyến backend: - Khi địa chỉ backend mục tiêu định tuyến là A, tất cả các tham số truy vấn sẽ bị xóa hoàn toàn. - Tuy nhiên, nếu địa chỉ backend mục tiêu định tuyến là B, chỉ một tập hợp cụ thể các tham số truy vấn sẽ được phép; bất kỳ tham số nào khác sẽ bị loại bỏ. |
Xác thực Token | Thực hiện xác thực tùy chỉnh cho token "Authorization: bearer xxxxxxxx" bằng cách sử dụng biểu thức chính quy. VÀ, các tổ hợp Phương thức + Đường dẫn cụ thể không thực hiện xác thực token bearer. |
Định tuyến | Cho phép người dùng lập trình để họ có thể tiếp tục định tuyến hoặc ngay lập tức xử lý lỗi dựa trên tình huống. |
Người dùng có thể sửa đổi các kịch bản trực tiếp trong trình chỉnh sửa mã hoặc sử dụng các snippets định nghĩa sẵn. Nhấp vào một ví dụ sẽ mở một trình chỉnh sửa popup, cho phép tùy chỉnh thêm.