0

I am trying out the java-vertx-web yaml to code generator. The generation process works fine and i get the code in target/generated-sources/openapi/src/gen/java/main/org/openapitools/vertxweb/server/api.

There are files called:

TestApiHandler.java
TestApiImpl.java
TestApi.java

Where in TestApiImpl there is for every route a stub method "NOT IMPLEMENTED", which is expected.

Now I thought the normal process would be to create in my own project files that extend these TestApiImpl files and write my own business logic in there so that they are in source control.

But when I do this there is no way for me to inject those new implemented classes back into the generated server, so that when routes are called not the stub methods are called, but my real implementations.

Overwriting the logic in these generated Impl classes makes no sense to me since this target folder is not in source control and every time I would regenerate my API these files would be overwritten.

What am I missing?

2
  • DISCLAIMER: I'm member of vert.x project team. I'm not familiar to how this generator works, but i suppose one of those classes should be subclassed? Like TestApiImpl? Usually what is in target/generated-sources should not be touched at all. You can try our official module that supports openapi validation (even though there is yet no code generation) github.com/vert-x3/vertx-web/tree/master/vertx-web-openapi Commented Jun 29, 2020 at 8:22
  • Hello thanks for your reply, indeed that is what I though too so I subclassed from TestApiImpl but from that point I did not know how to bring my subclassed-file back into the generated server as business logic. I would think that it is done via dependency injection or something like that, but I did not find a way to achieve that. Thanks for your other sources Commented Jun 29, 2020 at 14:54

1 Answer 1

0

Add --ignore-file-override .openapi-generator-ignore flag after you generate the code for the first time.

.openapi-generator-ignore should have something like this

**/*Impl.java

This should prevent the generated code from overriding your business logic.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.