Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why is it a separate extension? #19

Open
zambrovski opened this issue Jun 9, 2022 · 3 comments
Open

Why is it a separate extension? #19

zambrovski opened this issue Jun 9, 2022 · 3 comments

Comments

@zambrovski
Copy link

zambrovski commented Jun 9, 2022

Hey guys,

we already have an official Camunda Platform 7 extension called camunda-rest-client-spring-boot building a Java client embedded in SpringBoot. In it's core it is creating the client and in addition it wraps into the implementations of the Camunda Java API. So you might choose between a Java API provided by the generated client or Camunda Java API (Runtime Service, Task Service, etc...)

Would it make sense to unify the work on those extension into one project?

Cheers,

Simon

@berndruecker
Copy link
Collaborator

berndruecker commented Jun 14, 2022

Hi Simon (@zambrovski)

The main reason I started a separate project is that I wanted to keep it as lean as possible (to be able to easily maintain and support it). So this project is really "just" providing the OpenAPI code - and not trying to hide this behind the embedded-engine classes (like RuntimeService).
I find that it is also easier for newbies to follow along if this is aligned with our REST API for Remote Engine setups.

So from my perspective, I think it is quite OK to have both projects as they simply do different things (expose OpenAPI vs. mimicking the RuntimeService but delegating to REST).

So if you agree I would close this issue - the only thing I would see for now is that we might want to add something to the readme about it?

Best
Bernd

@zambrovski
Copy link
Author

zambrovski commented Jun 15, 2022

Hi Bernd!

Hmm. To be honest - I don't like it.

We are currently implementing the same things twice... You probably had to deal with incompatibilities of the OpenAPI generator and some request/response patterns used in Camunda Platform 7 REST API, and we had to deal with it too...

My approach would be to create one extension producing several libraries:

  1. Pure Open API Java Client (is currently implemented twice)
  2. A starter of the Open API Java client (is implemented in this extension)
  3. A bridge between the pure Open API Java Client and Camunda Platform Java API (is implemented in our extension)
  4. A starter allowing to inject "remote" version of Camunda Platform Java API (is implemented in our extension)

This would be much more clear for the user and having the same code base, the user can just decide what library to use...

What do you think?

Cheers,

Simon

@w-sf
Copy link

w-sf commented May 17, 2023

But the REST API is not complete,eg.deleteCandidateUser

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants