OpenAPITools / OpenAPITools/openapi-generator
[BUG][SPRING] Hardcoded version of swagger-ui in Spring Boot generated code
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 26.8k
- Forks
- 7.7k
- PR merge metrics
- PR metrics pending
Description
Bug Report Checklist
- Have you provided a full/minimal spec to reproduce the issue? (N/A)
- Have you validated the input using an OpenAPI validator (N/A)
- What's the version of OpenAPI Generator used?
- Have you search for related issues/PRs?
- What's the actual output vs expected output?
Description
Spring Boot generated code hardcodes a version of Swagger-UI.
eg. in OpenAPI2SpringBoot.java
registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/swagger-ui/3.14.2/");
- https://github.com/OpenAPITools/openapi-generator/blob/b5ae21b090797db0cba37a92de59e77e5562c7be/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/OpenAPI2SpringBoot.java#L53
- https://github.com/OpenAPITools/openapi-generator/blob/0fca90133ce097f987098e6121936c0ffcb210a8/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-mvc/openapiUiConfiguration.mustache#L74
- https://github.com/OpenAPITools/openapi-generator/blob/b5ae21b090797db0cba37a92de59e77e5562c7be/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-boot/openapi2SpringBoot.mustache#L68
This means if you use a different version of Swagger UI (current latest is 3.22.0) the UI is not present in the webapp, without any errors or indication of the problem.
openapi-generator version
Maven Plugin 3.3.4
OpenAPI declaration file content or url
Not related to any specific OpenAPI config.
Command line used for generation
<configOptions>
<sourceFolder>src/gen/java/main</sourceFolder>
<java8>true</java8>
<reactive>true</reactive>
<apiPackage>gen.api</apiPackage>
<modelPackage>gen.model</modelPackage>
<invokerPackage>gen.invoker</invokerPackage>
<delegatePattern>true</delegatePattern>
</configOptions>
Steps to reproduce
- add a version of swagger-ui other than 3.14.2
- generate API
/swagger-ui/index.htmlnot found- add version 3.14.2
/swagger-ui/index.htmlavailable
Related issues/PRs
None
Suggest a fix
Make the Swagger-UI version configurable.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-mvc/openapiUiConfiguration.mustache and openapi2SpringBoot.mustache, then compare the generated OpenAPI2SpringBoot.java shown in the report. Reproduce with a Swagger UI version other than 3.14.2 and inspect the generated /swagger-ui/ route. Done means the Swagger UI version is configurable and the route works with the configured dependency version.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring, spring-boot
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 38/100