Microgateway Target URL with Query Parameters

I have a requirement to call a SAP service thru microgateway.

The format of the SAP URL is

https://domain name:portname/XISOAPAdapter/MessageServlet?channel=party:Business system:CC_SOAPSender_Test1&version=3.0&Sender.Service=Business system∬erface=urn:Test.com:Web_Service_test^Outbound_Interface name

I am trying to use the actual URL (with QSPs) in microgateway-aware proxy,

it is not supporting '&' so I changed the '&' to escaped char of &

If I hit the migrogateway endpoint, SAP always return 500 with the following SOAP fault message.

<s:SystemErrorxmlns:s='http://sap.com/xi/WebService/xi2.0'> <context>XIAdapter</context> <code>ADAPTER.JAVA_EXCEPTION</code><text> <![CDATA[See log trace with id: n/a ]]> </text> </s:SystemError> 

Note:

If hit the same SAP URL(with &) in Postman, I can get 200.

If hit the same SAP URL(with escaped char of &) in Postman, I can get 500 with a above mentioned error message.

Please shed some light on How to deal with Query Parameters / call this kind of backend URLs in a microgateway proxy implementation.

1 1 739
1 REPLY 1

Microgateway does not use query parameters defined in the Target URL of the API proxy when constructing the request message to be sent to the target.

You could verify this functionality by creating a sample Microgateway API proxy which talks to another API proxy deployed on Edge Cloud and then tracing those requests:

Client -> API Proxy 1 [Microgateway] -> API Proxy 2 [Edge Cloud] -> Target

Nevertheless, if query parameters are included in the request message sent by the client application, Microgateway will send those to the target. This might be the reason for your observation.