Fizz企业级微服务API网关进阶系列教程-服务编排处理列表数据(上)-展开与合并

概述BFF(Backend for Frontend)是指为了前端服务的后端,这一层没有复杂的业务逻辑,主要是做简单的数据聚合、字段转换或裁剪服务编排是Fizz网关提供的一个强大的功能,能够基于现有的业务微服务通过在线配置的方式快速的生成一个聚合接口,减少中间层胶水代码以及降低编码投入。在服务编排中支持使用函数,本进阶教程中我们分三篇文章(上篇:列表展开&合并、中篇:列表提取&关联、下篇:列表字段重命名&字段移除)来介绍数据列表类函数的使用。本文为服务编排处理列表数据系列的上
摘要由CSDN通过智能技术生成

概述

BFF(Backend for Frontend)是指为了前端服务的后端,这一层没有复杂的业务逻辑,主要是做简单的数据聚合、字段转换或裁剪服务编排是Fizz网关提供的一个强大的功能,能够基于现有的业务微服务通过在线配置的方式快速的生成一个聚合接口,减少中间层胶水代码以及降低编码投入。在服务编排中支持使用函数,本进阶教程中我们分三篇文章(上篇:列表展开&合并、中篇:列表提取&关联、下篇:列表字段重命名&字段移除)来介绍数据列表类函数的使用。

本文为服务编排处理列表数据系列的上篇。

#函数

函数是服务编排提供的一个强大又便捷的功能,通过将一些常用的逻辑封装成函数,在服务编排中使用函数对服务编排过程的数据进行处理,从而简化我们的配置又能实现复杂的功能。

#函数分类

版本要求:v2.3或以上版本

函数以fn.开头,如fn.date.timestamp(), date为类别, 网关内置了以下几大类函数

  • 公共类 fn.common
  • 日期类 fn.date
  • 字符串类 fn.string
  • 编解码类 fn.codec
  • 数学类 fn.math
  • 数据列表类 fn.list

#引用值

在函数里支持使用引用值,如:

fn.string.concat({step1.result.channelCode},{step1.result.nonce})

{step1.result.channelCode} 表示引用值, 引用step1的结果

fn.string.concat({step1.result.channelCode},{g.account.name})

{g.account.name} 表示引用值, 引用公共资源“account.name”, 以g开头表示引用公共资源

#嵌套调用

支持多重嵌套调用,如:

fn.codec.md5(
    fn.date.add(
        fn.date.add(
            "2021-07-09 22:44:55", 
            "yyyy-MM-dd HH:mm:ss", 
            1, 
            fn.math.addExact(999,1)
        ), 
        "yyyy-MM-dd HH:mm:ss", 
        fn.math.addExact(0,1), 
        1000
    )
)

fn.string.toUpperCase(
    fn.codec.sha256(
        fn.string.concat(
            {step1.result.channelCode},
            {step1.result.nonce},
            {step1.result.timestamp},
            {step1.result.appSecret}
        )
    )
)

#数据列表类函数

</
函数 返回值类型 用途 参数说明
fn.list.expand(
List<List<Object>> data)
List<Object> 将二维数组(列表)展开为一维数组(列表),
如:
data=[[{a:1}],[{a:2}],[{a:3}]]
fn.list.expand(data)
返回:[{a:1},{a:2},{a:3}]
data: 二维数组(列表)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值