micronaut-projects / micronaut-aws

Projects specific to integrating Micronaut and Amazon Web Services (AWS)
Apache License 2.0
82 stars 81 forks source link

Swagger UI | Micronaut 4.2.x | Header enabled #2015

Closed mkfiles44 closed 5 months ago

mkfiles44 commented 5 months ago

Expected Behavior

Should be to access the Swagger-UI (https://localhost:8000/swagger-ui)

Actual Behaviour

When we hit https://localhost:8443/swagger-ui, It is not working

Reason

Breaking index.html (build/classes/java/main/META-INF/swagger/views/swagger-ui/index.html) Quotes are not appended properly -> urls: [{url: contextPath + '/swagger/demo-api-1.yml, name: '2'}],

Steps To Reproduce

  1. Created Micronaut application

build.gradle

`plugins { id("com.github.johnrengelman.shadow") version "8.1.1" id("io.micronaut.application") version "4.2.1" id "maven-publish" }

version = "0.1" group = "com.example"

repositories { mavenCentral() }

dependencies { annotationProcessor("io.micronaut.data:micronaut-data-processor") annotationProcessor("io.micronaut:micronaut-http-validation") annotationProcessor("io.micronaut.openapi:micronaut-openapi") annotationProcessor("io.micronaut.security:micronaut-security-annotations") annotationProcessor("io.micronaut.serde:micronaut-serde-processor") annotationProcessor("io.micronaut.validation:micronaut-validation-processor") implementation("io.micronaut:micronaut-http-client") implementation("io.micronaut:micronaut-management") implementation("io.micronaut.data:micronaut-data-hibernate-jpa") implementation("io.micronaut.data:micronaut-data-tx-hibernate") implementation("io.micronaut.liquibase:micronaut-liquibase") implementation("io.micronaut.rabbitmq:micronaut-rabbitmq") implementation("io.micronaut.security:micronaut-security") implementation("io.micronaut.security:micronaut-security-jwt") implementation("io.micronaut.security:micronaut-security-ldap") implementation("io.micronaut.serde:micronaut-serde-jackson") implementation("io.micronaut.sql:micronaut-hibernate-jpa") implementation("io.micronaut.sql:micronaut-jdbc-hikari") implementation("io.micronaut.validation:micronaut-validation") implementation("jakarta.validation:jakarta.validation-api") compileOnly("io.micronaut.openapi:micronaut-openapi-annotations") runtimeOnly("ch.qos.logback:logback-classic") runtimeOnly("org.postgresql:postgresql") testImplementation("org.junit.jupiter:junit-jupiter-params") testImplementation("org.junit.platform:junit-platform-suite-engine") testImplementation("org.mockito:mockito-core") }

application { mainClass.set("com.example.Application") } java { sourceCompatibility = JavaVersion.toVersion("17") targetCompatibility = JavaVersion.toVersion("17") }

graalvmNative.toolchainDetection = false micronaut { version "${micronautVersion}" runtime "netty" testRuntime "junit5" processing { incremental(true) annotations("com.example.*") } }`

  1. Application YML file

router: static-resources: swagger: paths: classpath:META-INF/swagger mapping: /swagger/** swagger-ui: paths: classpath:META-INF/swagger/views/swagger-ui mapping: /swagger-ui/** versioning: enabled: true header: enabled: true

  1. openapi.properties

`swagger-ui.enabled=true

micronaut.openapi.expand.api.version=1 micronaut.openapi.expand.openapi.title=Demo API micronaut.openapi.expand.openapi.description=Demo API swagger `

  1. Controller

`package com.example;

import io.micronaut.core.version.annotation.Version; import io.micronaut.http.annotation.*;

@Controller("/demo") @Version(value = "2") public class DemoController {

@Get(uri="/", produces="text/plain")
public String index() {
    return "Example Response";
}

}`

  1. If we remove below code it will work as expected but we want to have versioning

    versioning: enabled: true header: enabled: true

Environment Information

-Operating system : Windows -JDK : 1.7

Example Application

No response

Version

4.2.3