優維低程式碼:Pipes 管道

語言: CN / TW / HK

優維低程式碼技術專欄,是一個全新的、技術為主的專欄,由優維技術委員會成員執筆,基於優維7年低程式碼技術研發及運維成果,主要介紹低程式碼相關的技術原理及架構邏輯,目的是給廣大運維人提供一個技術交流與學習的平臺。

連載第二十期

《高階指引:Pipes 管道》

在 placeholders 佔位符 "@{ ... }" (引數注入中為 "${ ... }")中可以配置管道列表,管道提供了連續處理資料的能力,相當於由框架統一提供的全域性資料加工函式。

  • 對於不具備通用性,而是針對特定的業務的加工函式,應使用 Custom Processors 自定義加工函式。

管道的基本語法為以 | 開始,然後是 pipe identifier,最後是可選的額外引數列表,以 : 分隔,引數值如果是不包含特殊控制字元(|:})和空白符的字串、並且不會和 JSON value 格式衝突時,可以直接填寫字面量字元,否則應使用 JSON value 格式編寫。

在執行時,管道列表將被遍歷執行,通過 identifier 找到對應的管道函式 pipe,將當前 result 作為第一個引數,parameters 作為額外引數列表,呼叫 pipe 並將返回值賦值給 result。

例如以下 transform 配置片段:

transform:
  url: '?query=@{ some.field[0].path = ["complex","value"] | map : instanceId | slice : 0 : 10 }'

欄位 url 使用的管道為:

pipes:
  - identifier: "map"
    parameters:
      - "instanceId"
  - identifier: "slice"
    parameters:
      - 0
      - 10

# 圖解

# 管道列表

Pipes 管道原始碼現在託管在公開的 GitHub 倉庫中,以允許包括客戶在內的第三方開發者共同維護這些公共資料處理函式。

當前平臺支援的管道函式列表如下:

型別轉換:

邏輯運算:

數學運算:

字串處理:

陣列或字典:

陣列:

字典:

序列化和反序列化:

日期時間:

其它:

有疑問加站長微信聯絡(非本文作者)