Full Camunda access — the generic camunda client

Markus Stahl
2 min readNov 24, 2020

--

You can either implement every endpoint to Camunda’s vast REST API all by yourself — or generate a client from its openapi specification.

Camunda is a brilliant process orchestrator primly built for java developers. If your service task is not implemented in java, you must not give up, since Camunda provides the External Task Pattern. Regardless the language, the pattern suggests building a service that frequently queries workloads from processes and tasks in Camunda.

If you wonder, if Camunda is worthwhile the effort, when the best features are reserved for java developers, have a look at Camunda’s REST API your application have to connect with: it is super rich. It must contain easily hundreds of endpoints not only for external tasks leaving no wishes unanswered.

With such an overwhelming amount of possibilities comes the next problem: Are you up for implementing clients for every endpoint? Or even if you implement only some endpoints, you’d have to implement all kind of variations and options.

Luckily Camunda publishes its OpenAPI specification. You have to dig a little bit in their documentation, but its worthwhile: hidden in a jar (of course) sleeps the holy openapi.json

There are various tools on the market that generate client code from such a specification. Even servers, documentation and pipelines can be created automatically. One tool that does a perfect job is the OpenAPI Generator project.

With the OpenAPI Generator and openapi.json from Camunda you are ready to generate a camunda client in any language you like. If you are looking for a python client, don’t hustle: I did the work for you and generated the generic camunda client based on Camunda BPM platform 7.14 .

Simply install it with

pip install generic-camunda-client

It’s source code is generated therefore not available in any git repository. However, if you like to see how it is created, the generator project is available on Gitlab.

Documentation is generated along and available also on Gitlab, too.

The client can be used for example to retrieve all active process instances for a given process definition key:

Have you generated clients for Camunda, yet?

--

--

Markus Stahl
Markus Stahl

Written by Markus Stahl

Sustainable automation with open source technologies.

Responses (1)