2017-03-06 63 views
0

如何將SOAP Fault映射到API Connect中的REST JSON對象?API連接SOAPFault處理

我用支票處理SOAP錯誤「錯誤時停止」在我的請求分量,但是,我不知道如何獲得故障的身體和在我message.body一個JSON對象設置,例如

回答

0

我發現瞭如何解決這個問題。

在我的情況,我的問題是,invoke的變量輸出暴露了我的JSON正文作爲一個NodeList XML,所以我不能檢索任何信息。

我得到這個變量,並在它gatewayscript變換到XML

var nodeList = apim.getvariable('<responseServiceVariable>.body'); 
 

 
apim.setvariable('message.headers.content-type', 'application/xml') 
 
apim.setvariable('message.body', nodeList);

之後,我使用的XML到JSON組件。與其他gatewayscript

然後,我變換的響應

apim.readInputAsJSON(function (error, json) { 
 

 

 
    if (error) {} 
 

 
    var jsonString = JSON.stringify(json) 
 
    .replace(/\$/g,'value'); 
 
    
 
    var jsonReplaced = JSON.parse(jsonString); 
 

 
    var envelope = jsonReplaced['s:Envelope']; 
 
    var body = envelope['s:Body']; 
 
    var fault = body['s:Fault']; 
 
    var faultstring = fault['faultstring']; 
 
    var moreInformation = faultstring['value']; 
 

 
    var httpMessage = "My httpMessage" 
 

 
    var error = {"httpCode": 400, "httpMessage": httpMessage, "moreInformation": moreInformation} 
 

 
    apim.setvariable('message.headers.content-type', 'application/json') 
 
    apim.setvariable('message.status.code', 400); 
 
    apim.setvariable('message.body', error); 
 
});