消息转换主要用到Transform Message这个组件,首先建立一个简单的post请求API,如下图:
要得到不同格式的数据返回格式,主要在Transform Message配置,下图:
debug模式下请求接口查看转换效果:
这个就有点厉害了,直接改application/xml后请求时报错的,原因是要设置一个顶级节点,所以payload输出设置如下:
再次测试请求得到的结果是这样的:
测试请求数据和结果如下:
可以看到《data》中多了code属性
上面的写法,就是把<data>标签里面的code属性取出来,注意其他属性也要根据xml标签结构取(比如price在data下一级)请求参数和转换结果如下:
上面的表达式代表:当price不等于“199”的时候取原属性的值,否则price的值为111
上面的表达式代表:如果没有price属性,默认属性值为111
上面price转为string类型,后面那个字段先转为date类型,再转成希望得到的string格式,请求和返回结果如下:
上面的写法把/()/中的数据替换为with后面的值,即“request”替换为“response”,请求和返回结果如下:
上面的写法是把数据以date和price排序,并且排除seats为0的数据对象
还可以事先定义转换规则或类型,然后直接引用:
上面的写法定义了一个flights的实体bean,将转换后的map再转成bean类型,最后的数据是一多个bean组成的数组
上面相当于一个方法,可以作为一个flow在outpout中使用表达式引用,传的参数是type,下面是引用的写法:
这样,就等于在设置totalSeats值的时候引用了上面封装好的getTotalSeatsFlow里面的表达式对数据做处理,{type:$.palntype}表示把planetype作为type参数传过去。