Request Transformer Advanced
Tổng quan
Chính sách Request Transformer Advanced cho phép các yêu cầu API được sửa đổi một cách động trước khi đến backend. Chính sách này cung cấp khả năng biến đổi thông qua five tag operations, đảm bảo các yêu cầu tuân thủ các cấu trúc mong muốn:
- Remove Tag: Xóa các tiêu đề, tham số truy vấn hoặc trường trong thân yêu cầu cụ thể.
- Rename Tag: Thay đổi tên của một trường trong khi vẫn giữ nguyên giá trị của nó.
- Replace Tag: Sửa đổi các giá trị hiện có bằng cách sử dụng các mẫu, chuỗi hoặc hàm.
- Add Tag: Giới thiệu các trường mới trong tiêu đề, tham số truy vấn hoặc thân yêu cầu.
- Append Tag: Thêm dữ liệu vào các trường hiện có thay vì thay thế chúng.
Chính sách này đặc biệt hữu ích cho các yêu cầu API structuring, securing, and optimizing trước khi chuyển tiếp chúng đến backend.
Chi tiết cấu hình
Cấu hình tham số
Khi thêm một thẻ, người dùng có thể sử dụng các mẫu này làm giá trị:
Bạn có thể sử dụng bất kỳ tiêu đề yêu cầu hiện tại nào, tham số truy vấn và nhóm URI đã được ghi lại làm mẫu để điền vào các trường cấu hình được hỗ trợ.
- Request Parameter: tiêu đề
- Template:
$(headers.<header_name>), $(headers["<Header-Name>"]) hoặc $(headers["<header-name>"])
- Request Parameter: chuỗi truy vấn
- Template:
$(query_params.<query-param-name>) hoặc $(query_params["<query-param-name>"])
- Request Parameter: URI đã ghi lại
- Template:
$(uri_captures.<group-name>) hoặc $(uri_captures["<group-name>"])
- Request Parameter: biến chia sẻ
- Template:
$(shared.<variable-name>) hoặc $(shared["<variable-name>"])
Để thoát khỏi một mẫu, hãy bọc nó trong dấu ngoặc kép và truyền vào một mẫu khác. Ví dụ:
$('$(something_that_needs_to_escaped)')
Note: Plugin tạo ra một bảng không thể thay đổi của các tiêu đề yêu cầu, chuỗi truy vấn và URI đã ghi lại trước khi biến đổi. Do đó, bất kỳ cập nhật hoặc xóa tham số nào được sử dụng trong một mẫu sẽ không ảnh hưởng đến giá trị được hiển thị của một mẫu.
Một ví dụ Lambda hoàn chỉnh để thêm tiền tố cho giá trị tiêu đề với “Basic” nếu chưa có:
Authorization:$((function()
local value = headers.Authorization
if not value then
return
end
if value:sub(1, 6) == "Basic " then
return value -- đã được hình thành đúng cách
end
return "Basic " .. value -- đã thêm tiền tố đúng
end)())
Note: Đặc biệt trong các mẫu nhiều dòng như ví dụ ở trên, hãy chắc chắn không thêm bất kỳ khoảng trắng hoặc dòng mới nào ở cuối. Bởi vì những điều này sẽ nằm ngoài các vị trí giữ chỗ, chúng sẽ được coi là một phần của mẫu, và do đó sẽ được thêm vào giá trị được tạo ra. Môi trường được cách ly, có nghĩa là Lambdas sẽ không có quyền truy cập vào bất kỳ hàm thư viện nào, ngoại trừ các phương thức chuỗi (như sub() trong ví dụ ở trên).
Thêm thẻ "Xóa"
- Function: Xóa một trường khỏi yêu cầu.
-
Configuration Steps:
- Chọn "Remove" từ danh sách thả xuống.
- Nhập field name để xóa.
- Chọn phạm vi áp dụng (Headers, Query String, Body).
- Nhấp Save để áp dụng thẻ.
Thêm thẻ "Đổi tên"
- Function: Đổi tên một trường yêu cầu existing trong khi giữ nguyên giá trị của nó.
-
Configuration Steps:
- Chọn "Rename" từ danh sách thả xuống.
- Nhập current field name và new name.
- Chọn phạm vi áp dụng (Headers, Query String, Body).
- Nhấp Save để áp dụng thẻ.
Thêm thẻ "Thay thế"
- Function: Thay đổi giá trị của một trường hiện có bằng cách sử dụng templates, strings, or functions.
-
Configuration Steps:
- Chọn "Replace" từ danh sách thả xuống.
- Nhập field name để thay thế.
- Chọn loại new value (Template, String, Function).
- Nhập replacement value.
- Chọn phạm vi áp dụng (Headers, Query String, Body).
- Nhấp Save để áp dụng thẻ.
Thêm thẻ "Thêm"
- Function: Chèn một trường mới vào yêu cầu.
-
Configuration Steps:
- Chọn "Add" từ danh sách thả xuống.
- Nhập field name và new value.
- Chọn data type: Template – Sử dụng các placeholder đã định nghĩa trước; String – Văn bản tĩnh; Function – Giá trị dựa trên logic động.
- Chọn phạm vi áp dụng (Headers, Query String, Body).
- Nhấp Save để áp dụng thẻ.
Thêm thẻ "Append"
- Function: Ghi thêm dữ liệu bổ sung vào trường existing thay vì thay thế nó.
-
Configuration Steps:
- Chọn "Append" từ danh sách thả xuống.
- Nhập field name và data to append.
- Chọn data type (Template, String, Function).
- Chọn phạm vi áp dụng (Headers, Query String, Body).
- Nhấp Save để áp dụng thẻ.
Cập nhật thẻ
- Function: Cho phép sửa đổi một thẻ hiện có.
-
Configuration Steps:
- Nhấp vào một tag trong bảng thẻ.
- update popup xuất hiện với các chi tiết thẻ hiện tại.
- Sửa đổi các giá trị cần thiết (ví dụ: tên trường, giá trị mới, loại dữ liệu).
- Nhấp Save để áp dụng các thay đổi.
- Triển khai lại API để đảm bảo các thay đổi có hiệu lực.
Xóa thẻ
- Function: Xóa một thẻ hiện có khỏi cấu hình chính sách.
-
Configuration Steps:
- Tìm tag trong bảng thẻ.
- Nhấp vào (x) icon bên cạnh tên thẻ.
- Một confirmation popup xuất hiện.
- Nhấp vào Check để xác nhận việc xóa.
- Triển khai lại API để hoàn tất việc xóa.