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 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.

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 soạn thảo mã trước chức nă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:

SnippetsDescription
Bộ phân tích JSONTả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ầuLấy phương thức HTTP (GET, POST, v.v.).
Lấy đường dẫn yêu cầuLấy đường dẫn yêu cầu đầy đủ.
Lấy tiêu đề yêu cầuTrích xuất giá trị từ các tiêu đề yêu cầu cụ thể.
Đặt tiêu đề yêu cầuSửa đổi hoặc thêm tiêu đề yêu cầu một cách động.
Đặt phản hồi thoátKế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.

Mẫu trước chức năng

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

ExamplesDescription
Che giấu dữ liệuChe 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ấ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 TokenTriể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ế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ụ trước chức năng

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