Skip to main content

This is documentation for Caché & Ensemble.

For information on converting to InterSystems IRIS, see the InterSystems IRIS Adoption Guide and the InterSystems IRIS In-Place Conversion Guide, both available on the WRC Distributions page (login required).

Previous sectionNext section

Developing a REST Service

This section describes how to provide a REST service from an Ensemble Business Service and to pass the request to a Business Process or Business Operation. It lists the best practice for different requirements.

If you want to:

  • Parse and process the request in the production—use a subclass of %CSP.REST and call the Ens.Director.CreateBusinessService() method to instantiate the class as a business service. This service uses Ensemble’s CSP port.

  • Pass through a REST URL to an external server with minimal changes—use the pass-through REST service, EnsLib.REST.GenericService.

For details on implementing a subclass of %CSP.REST, see Creating REST Services in Caché.

For an example of using the Ens.Director.CreateBusinessService() method, use Studio to examine the class Demo.ZenService.Zen.WeatherReportForm.cls. Although this is a Zen service rather than a REST service, you would use the Ens.Director.CreateBusinessService() method in the same way.

For details on using the pass-through REST service, see the sections on pass-through business services in “Configuring ESB Services and Operations” and “Pass-through Service and Operation Walkthrough” in Using Ensemble as an ESB.


Although Ensemble defines a class EnsLib.REST.Service, that is a subclass of %CSP.REST, we recommend that you not use this class because it provides an incomplete implementation of %CSP.REST. The only feature that EnsLib.REST.Service provides that is not available from %CSP.REST is the ability to use a special port, but we recommend against using a special port because it does not provide the robustness and security you get by using a commercial web server and the CSP port.