[kotlin-server][JAX-RS] Fix class names for useTags#23441
[kotlin-server][JAX-RS] Fix class names for useTags#23441feczkob wants to merge 4 commits intoOpenAPITools:masterfrom
Conversation
|
I used this repo for reproduction, thanks to @lbilger: https://github.com/lbilger/openapi-generator-path-shadowing-reproducer JAXRS-SPEC,
|
945ed35 to
7a365ce
Compare
lbilger
left a comment
There was a problem hiding this comment.
@feczkob I think I see more or less what you're doing here now. You want to align kotlin-server/jaxrs-spec with the "original" jaxrs-spec. If that is the main goal, the PR mostly achieves it as far as I can see. Only the docs should also state that the useTags parameter is only supported for this library, just like useMutiny already does.
This will however be a breaking change for everyone using this generator/library. Also, it deliberately excludes all the other libraries from using this parameter even though it would be no additional effort to support it for all libraries. So I suggest to at least consider making useTags=true the default, even though it is not completely in line with jaxrs-spec.
| Class | Method | HTTP request | Description | ||
| ------------ | ------------- | ------------- | ------------- | ||
| {{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | [**{{operationId}}**]({{apiDocPath}}{{classname}}.md#{{operationIdLowerCase}}) | **{{httpMethod}}** {{#useTags}}{{commonPath}}{{/useTags}}{{path}} | {{{summary}}} | ||
| {{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | [**{{operationId}}**]({{apiDocPath}}{{classname}}.md#{{operationIdLowerCase}}) | **{{httpMethod}}** {{commonPath}}{{path}} | {{{summary}}} |
There was a problem hiding this comment.
It seems operationIdLowerCase is not set in the useTags=false case - probably because the super method that sets it is never called.
aef988e to
c3e559b
Compare
|
Hey @lbilger, I added a new commit c3e559b with your suggested changes. The default for As for the future steps, I can think of a few:
When my time permits, I'd pick up the last one in a separate PR, to finally make |






Follow-up of #23379.
PR checklist
Commit all changed files.
This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
These must match the expectations made by your contribution.
You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example
./bin/generate-samples.sh bin/configs/java*.IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
master(upcoming7.x.0minor release - breaking changes with fallbacks),8.0.x(breaking changes without fallbacks)"fixes #123"present in the PR description)Summary by cubic
Fixes JAX-RS
kotlin-serverclass naming whenuseTags=falseand standardizes@Pathgeneration by computing a class-level common path.useTagsnow defaults to true, so tags drive class names unless disabled.Bug Fixes
jaxrs-spec): computecommonPathfor every API class; set class-level@Pathto it (empty string for root) and emit method@Pathonly for sub-resources.useTags=false, group operations (and class names) by base path (first resource path segment) with fallback todefaultif empty or templated.Refactors
useTagsto true (docs updated; scope clarified tojaxrs-spec), removeuseTagsfromkotlin-server-jaxrs-spec.yaml.{{commonPath}}{{path}}and guard method@PathwithsubresourceOperation.Written for commit c3e559b. Summary will update on new commits.