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

schemaMapping configuration to re-use existing model classes #1941

Open
2 tasks done
rquinio1A opened this issue Apr 16, 2024 · 5 comments
Open
2 tasks done

schemaMapping configuration to re-use existing model classes #1941

rquinio1A opened this issue Apr 16, 2024 · 5 comments
Labels
enhancement New feature or request stale

Comments

@rquinio1A
Copy link
Contributor

Why do we need this improvement?

With openapi-generator we're relying on the schema-mapping feature.
Would it be possible to have a similar feature built-in modelina ?

How will this change help?

schema-mapping allows to re-use some existing model objects instead of generating them.
This allows us to build helpers or utilities that can be shared across several APIs built around shared types.

Screenshots

No response

How could it be implemented/designed?

Maybe re-using the design from https://openapi-generator.tech/docs/customization/#schema-mapping

🚧 Breaking changes

No

👀 Have you checked for similar open issues?

  • I checked and didn't find a similar issue

🏢 Have you read the Contributing Guidelines?

Are you willing to work on this issue?

No, someone else can work on it.

@rquinio1A rquinio1A added the enhancement New feature or request label Apr 16, 2024
Copy link
Contributor

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

@jonaslagoni
Copy link
Member

jonaslagoni commented Apr 16, 2024

So basically, if the model is about to be generated, check it against schemaMapping, and if the names match use that mapping value instead?

Would it need to handle dependencies, i.e. you would like to also import the type? Or do you always assume that whatever the mapping value is is taken as is?

@rquinio1A
Copy link
Contributor Author

So basically, if the model is about to be generated, check it against schemaMapping, and if the names match use that mapping value instead?
Would it need to handle dependencies, i.e. you would like to also import the type?

Exactly, if there's a schema mapping for a referenced type, do not generate it and reference the existing one instead.
In Java jaxrs-spec generator I know it uses the inline (fully qualified) type, without an import, but I guess it may be language/template-specific.

<schemaMappings>
    <schemaMapping>Error=com.acme.Error</schemaMapping>
</schemaMappings>
private @Valid List<com.acme.Error> errors;

@jonaslagoni
Copy link
Member

Alright, yea I think it makes sense to add something like this 👍

Copy link
Contributor

This issue has been automatically marked as stale because it has not had recent activity 😴

It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.

There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.

Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.

Thank you for your patience ❤️

@github-actions github-actions bot added the stale label Aug 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request stale
Projects
None yet
Development

No branches or pull requests

2 participants