我已经在WSO2 EI中实现了一个简单的API服务。 Input端点配置为实质上接受'application / edi-hl7'来读取HL7消息。我对消息执行了某些转换,然后需要使用JSON进行响应。因此,作为响应JSON有效负载的一部分,我还希望将原始HL7消息作为请求有效负载发送,并且也以原始形状发送(不是XML / JSON格式)。 说我的输入是
MSH | ^〜\&| ULTRA_V3.1 | LAV | Web门户| Web门户| 201810030949 || ORU ^ R01 | 279857418 | P | 2.3.1 ||| AL | AL | AU PID || 3914950 | 21710425491 ^^^ AUSHIC ^ MC〜111111 ^^^^ UR〜5548391 ^^^^ ULTRAREL || KAY ^ BRUCE ^^^ || 19630604 | M ||| 11 NJUONA AVE ^^ BAIURE BAY ^ WSN ^ 2000 ||| ^^^^^^^ 0243333323 |||||| 21710425491 PV1 || O | CSLI ^ KINUYBER ||||| 214082JL ^ KOPRA ^ MARUTI ^^ KAYBB ^ DR ORC | RE || 18-15768981-000-0 || R OBR | 1 || 18-15768981-000-0 | 000 ^ PENDING ^ ULTRA ^ LAVLEI || 20180914 | 201810030805 ||| CSKI |||| 201810030949 || 214082JL ^ KOPRA ^ MARUTI ^^ KAYBB ^ DR || TFT- 0 ^ GLU-0 ^ CRP-0 ^ RDA-0 ^ MBA-0 ^ LIP-0 ^ FBE-0 || 683131368452 | LAV ^ false | 201810030949 || LAB | I || ^^^ 20180914 |
示例输出为
{"message": "MSH|^~\&|.....", "Otherkeys": "someVal"}
作为message
的一部分,我希望原样而不是SOAP正文。
附言我需要删除每行末尾的\n\r
。
主要问题是如何在调解流程中获得原始形状的原始消息。
答案 0 :(得分:2)
这是示例API。希望能帮助到你。 Screenshot of the result 只需将有效负载工厂介体放在序列中的适当位置即可。
<api xmlns="http://ws.apache.org/ns/synapse" name="Test" context="/Test">
<resource methods="POST" uri-template="/testHL">
<inSequence>
<log level="full"/>
<payloadFactory media-type="json">
<format>{"message": "$1", "Otherkeys": "someVal"}</format>
<args>
<arg evaluator="xml" expression="$body/*[1]"/>
</args>
</payloadFactory>
<respond/>
</inSequence>
</resource>
</api>