这次的flow的目标是发起一次监听的同时,触发4次增加数据库的工作。其中一个filed是“$push”.
坑1: 发送request的时候,header里面的content type没有自动生成的,只好自己添加了,这导致了我的服务器返回406 not acceptable 错误。
坑2: 我希望发一条 {“$push”: {"title": "sth" + variable}} 形式的 request, 这个request在body中应该怎么写呢? 首先,这个$是reference的标识符,但是我们这里只是需要发处“$”这个符号,方法和 latex里面一样加 “\” 就可以了,
此外,和java中 string + string的形式不同, 这里的形式是 “++”。
最后,我们既可以直接发一条 “row message” 也可以 发 DataWeave. 但是,假如要使用vars.variable 的形式的话应该必须用dataweave. 也就是#[] 的形式。 假如是纯text的话就不用:
‘’‘ dataweave 形式
#[%dw 2.0
output application/json
---
{ "\$push": {"party": " lalala" ++ vars.counter } }
]
‘’‘
‘’‘ 纯 text:
{ "$push": {"party": " lalala"} 可以不用加 “\”
‘’‘
坑3: for loop
我这里是用for each connector 强行实现的,按mule 社区上来看应该是可以用 choice 加set variable做,choice加varibale的和我们正常的程序loop写法更像。不过我的variable赋值一直有点问题,所以强行实现了一波。
这里的collection 我尝试过填4, 但是这里不能用“number”只能是array或者object,所以索性我就丢了个array进去,这个array没啥用,只是让loop跑四次而已。真是丑。。。
应该是有更好的方式的,等我搞出来在更新好了~