diff --git a/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/advices/ServerInfoAdvice.kt b/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/advices/ServerInfoAdvice.kt index 8cbff61..f419dd4 100644 --- a/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/advices/ServerInfoAdvice.kt +++ b/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/advices/ServerInfoAdvice.kt @@ -30,11 +30,13 @@ class ServerInfoAdvice( response: ServerHttpResponse ): Any? { for (service in serverInfoHeaders) { - response - .headers - .addAll( - service.getHeaders() - ) + val serverInfo = service.getHeaders() + + serverInfo.map { + response + .headers + .add(it.first, it.second) + } } return body diff --git a/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/controllers/ServerInfoController.kt b/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/controllers/ServerInfoController.kt index 0b4393d..9a1e782 100644 --- a/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/controllers/ServerInfoController.kt +++ b/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/controllers/ServerInfoController.kt @@ -1,10 +1,9 @@ package ru.touchin.server.info.controllers -import org.springframework.util.LinkedMultiValueMap -import org.springframework.util.MultiValueMap import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController +import ru.touchin.server.info.response.ServerInfoResponse import ru.touchin.server.info.services.ServerInfoHeader @RestController @@ -14,14 +13,22 @@ class ServerInfoController( ) { @GetMapping - fun getServerInfo(): MultiValueMap { - val serverInfoList = LinkedMultiValueMap() + fun getServerInfo(): ServerInfoResponse { + val serverInfoList = mutableListOf>() for (service in serverInfoHeaders) { - serverInfoList.addAll(service.getHeaders()) + val headers = service.getHeaders() + + headers.map { + serverInfoList.add( + mapOf(it) + ) + } } - return serverInfoList + return ServerInfoResponse( + serverInfo = serverInfoList + ) } } diff --git a/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/response/ServerInfoResponse.kt b/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/response/ServerInfoResponse.kt new file mode 100644 index 0000000..ce95d3f --- /dev/null +++ b/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/response/ServerInfoResponse.kt @@ -0,0 +1,7 @@ +package ru.touchin.server.info.response + +import org.springframework.util.MultiValueMap + +data class ServerInfoResponse( + val serverInfo: List> +) diff --git a/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/services/ServerInfoHeader.kt b/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/services/ServerInfoHeader.kt index acbc17c..969d456 100644 --- a/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/services/ServerInfoHeader.kt +++ b/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/services/ServerInfoHeader.kt @@ -4,6 +4,6 @@ import org.springframework.util.MultiValueMap interface ServerInfoHeader { - fun getHeaders(): MultiValueMap + fun getHeaders(): List> } diff --git a/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/services/version/BuildVersionHeader.kt b/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/services/version/BuildVersionHeader.kt index cb43972..41a4032 100644 --- a/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/services/version/BuildVersionHeader.kt +++ b/server-info-spring-web/src/main/kotlin/ru/touchin/server/info/services/version/BuildVersionHeader.kt @@ -11,11 +11,10 @@ class BuildVersionHeader( private val serverInfoProperties: ServerInfoProperties ) : ServerInfoHeader { - override fun getHeaders(): MultiValueMap { - return LinkedMultiValueMap() - .apply { - this.add("X-App-Build-Version", serverInfoProperties.buildVersion) - } + override fun getHeaders(): List> { + return listOf( + "X-App-Build-Version" to serverInfoProperties.buildVersion + ) } }