In April 2014, IBM introduced a new Scripting Language to customize and configure DataPower for deployment based on Javascript. This introduced a new approach, beyond XSLT, and also opened up the ability to leverage Javascript skills common in the marketplace.
Our trusted advisors did some research on when to use XSLT vs. Gateway Script:
IBM continues to upgrade GWS (GatewayScript) with each firmware release. Initially, it lacked some of the extension functions that are provided for in the XSL functions.
They are now pretty much have caught up, with a few exceptions, primarily in the various protocols that are supported in URL-open extensions. What they have done with GWS is add a lot of JSON capabilities and security updates for JSON (JWE, JWK, JWT). GWS is more traditional programming versus XSLT’s template model. It is much easier to handle things like setting up conditionals or loops. Output messages to the log are as simple as typing: console.debug (“accessCount = %i, accessCount); You can still use a combination of XSL and GWS in a service policy. Also, you have a debugger in GWS which means now you can step through your GWS code. You can build functions in GWS, which is much easier than writing call-template or apply-templates. E.G., Var PO = producePurchaseOrder (bookOrder, booksDB). You can also execute GWS from dynamic content and run it out of the temporary folder. From a performance standpoint, GWS is a secure and optimized Javascript. It is probably a shade slower since you cannot take advantage of the XML chip on physical DataPower appliances, but many folks on virtual appliances won’t have that option anyway.
Bottom line is as follows:
- If you are new to XSLT and have javascript skills, go with GWS.
- If you have existing XSLT written and need to perform specialized scripts that are easier to do in a traditional javascript, go right ahead. Example might be some calculations or date manipulation.
- If you want to use more of the latest JSON capabilities, using GWS makes it easier because JSON is just javascript notations.
- You can also check out the store:/// folder for examples of GWS.
- If you are dealing with XML transformation and are familiar with XPATH, then it’s OK to use XSLT.