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 bài.
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: Triển khai 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 soạn thảo 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 soạn thảo 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 với 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 với nội dung thân bài 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 để triển khai 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 soạn thảo mã chuyên dụng và quyền truy cập vào Snippets và Ví dụ 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.
Mẫu (Khối mã đã định nghĩa)
Phần Snippets cung cấp các khối mã đã định nghĩa mà người dùng có thể chèn vào trình soạn thảo. Những khối này giúp người dùng nhanh chóng thực hiện các sửa đổ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 mẫu:
Snippets | Description |
---|---|
Bộ phân tích JSON | Tải và xử lý các thân yêu cầu định dạng JSON. |
Lấy thân yêu cầu thô | Lấy toàn bộ thân yêu cầu trước khi xử lý. |
Đặt thân yêu cầu dịch vụ thô | Sửa đổi thân yêu cầu trước khi chuyển tiếp đến backend. |
Lấy phương thức yêu cầu | Lấy phương thức HTTP (GET, POST, v.v.). |
Lấy đường dẫn yêu cầu | Lấy đường dẫn yêu cầu đầy đủ. |
Lấy tiêu đề yêu cầu | Trích xuất giá trị từ các tiêu đề yêu cầu cụ thể. |
Đặt tiêu đề yêu cầu | Sửa đổi hoặc thêm tiêu đề yêu cầu một cách động. |
Đặt phản hồi thoát | Kết thúc một yêu cầu và trả về phản hồi tùy chỉnh. |
Đặt máy chủ dịch vụ | Thay đổi máy chủ đích một cách động. |
Đặt sơ đồ yêu cầu dịch vụ | Sửa đổi sơ đồ yêu cầu (http hoặc https). |
Đặt đường dẫn yêu cầu dịch vụ | 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 để trình bày các triển khai thực tiễn của chính sách trước chức năng. Những ví dụ này phục vụ như các mẫu để 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 payload 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 | Triển khai 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 kế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ể chỉnh sửa các script trực tiếp trong trình chỉnh sửa mã hoặc sử dụng các đoạn mã đã định nghĩa trước. 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.