Exposing camunda as WebService?

Hello everyone,
so I have been looking into exposing a camunda process as a WebService and would like to know something that probably someonehere can anwser.
Can you expose a camunda process as a SOAP WS? Or is that only possible as a REST service?
I would like to integrate a perocess made in camunda in an already existing project that uses SOAP calls to comunicate and I know it’s possible to make SOAP calls from camunda, but is it possible to expose the process like that?

Thank you for the info.

Hi @greaneagle,

Camunda provides a Java API on top of which you can build a SOAP endpoint that invokes this API. While Camunda provides a REST API out of the box, it does not provide a SOAP API so you would have to build that yourself.

Cheers,
Thorben

@greaneagle you can take a look at this app as a example where they built a Java based REST API in-front of Camunda. But you could easily take the model and adjust for soap: https://bitbucket.org/unctad/bpm-sandbox

This is just my two cents, but what you’re looking at could be a fairly substantial project. If I were asked to do this, and I’m at best a novice Java programmer, I would create an interface that allowed you to create a static map between the REST API method and a SOAP equivalent. Unfortunately, there’s no WADL associated with the Camunda REST API, so you’re going to either need to go through the API documentation to find all of the methods, or come up with a way to parse the source code that supports the REST API for entries. Moreover, you’re going also need to create all of the input (request) variables.

There are (I think) some utilities to convert WADL to WSDL, but you need a WADL first.

You might look at something like “Talend ESB” to help you with this. It’s provides the Talend OpenStudio IDE that allows you to easily create enterprise services and can be used build an interpreter between a SOAP and REST call.

One final tip, I’ve been successful with using Microsoft Excel when needing to create large amounts of repetitive code. What you do is get all the methods in a table, then on another tab, you create “formulas” that output the actual Java code, which should be very repetitive. Once you do that, you just cut and paste the resulting code into your Java editor. Note that there will be issues with quotation marks that you’ll need to filter out, or you’ll need to figure out how to make it not export those.