Chuyển tới nội dung chính

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.

ghi chú

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.

Trình chỉnh sửa mã Pre-function

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:

SnippetsDescription
JSON ParserTải và xử lý các thân yêu cầu định dạng JSON.
Get Request Raw BodyLấy toàn bộ thân yêu cầu trước khi xử lý.
Set Service Request Raw BodyThay đổi thân yêu cầu trước khi chuyển tiếp đến backend.
Get Request MethodLấy phương thức HTTP (GET, POST, v.v.).
Get Request PathLấy đường dẫn yêu cầu đầy đủ.
Get Request HeaderTrích xuất giá trị từ các tiêu đề yêu cầu cụ thể.
Set Request HeaderThay đổi hoặc thêm các tiêu đề yêu cầu một cách động.
Set Response ExitKết thúc một yêu cầu và trả về một phản hồi tùy chỉnh.
Set Service HostThay đổi máy chủ đích một cách động.
Set Service Request SchemeThay đổi sơ đồ yêu cầu (http hoặc https).
Set Service Request PathThay đổi đường dẫn yêu cầu trước khi gửi đến backend.

Snippets Pre-function

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ụ:

ExamplesDescription
Che giấu dữ liệuChe 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ấnXó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 TokenThự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ếnCho 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.

Ví dụ Pre-function

Ví dụ để áp dụ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.