优维低代码:Pipes 管道

EASYOPS_youwei · · 657 次点击 · · 开始浏览    

 

 

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维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 仓库中,以允许包括客户在内的第三方开发者共同维护这些公共数据处理函数。

当前平台支持的管道函数列表如下:

类型转换:

 

逻辑运算:

 

数学运算:

 

字符串处理:

 

数组或字典:

 

数组:

 

字典:

 

序列化和反序列化:

 

日期时间:

 

其它:


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

657 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传