webMethods CloudStreams 10.3 | webMethods CloudStreams Documentation 10.3 | Virtual Services | Important Considerations for REST Virtual Services | Changing the HTTP Method of a REST Virtual Service | Changing HTTP Methods in Requests Dynamically Using a Context Variable
 
Changing HTTP Methods in Requests Dynamically Using a Context Variable
Alternatively, instead of changing an HTTP method explicitly (statically) to PUT, POST, GET or DELETE, you can change the HTTP method to the value of a predefined context variable (ROUTING_METHOD) that dynamically resolves to a different HTTP method (PUT, POST, GET or DELETE, as appropriate).
To change the HTTP method dynamically, you create an IS service and invoke it in the virtual service's "In Sequence" step. This IS service should reference the predefined context variable ROUTING_METHOD (see The Predefined Context Variables). To set the value of ROUTING_METHOD, use the setContextVariableValue method, which is defined in the following class:
com/softwareag/cloudstreams/api/RuntimeFacade.java
For example:
public static final void updateHttpMethod(IData pipeline)
throws ServiceException {

String mcKey = "Message Context";

Object obj = IDataUtil.get(pipeline.getCursor(), mcKey);
if (obj!=null && obj instanceof
org.apache.axis2.context.MessageContext) {

MessageContext msgCtx = (MessageContext) obj;

QName varName =
new QName(ContextVariableType.ROUTING_METHOD.getName());

RuntimeFacade.setContextVariableValue(varName, "PUT", msgCtx );
}
}

Copyright © 2013-2018 | Software AG, Darmstadt, Germany and/or Software AG USA, Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates and/or their licensors.