diff --git a/version-spring-web/src/main/kotlin/ru/touchin/version/annotations/Versioned.kt b/version-spring-web/src/main/kotlin/ru/touchin/version/annotations/Versioned.kt new file mode 100644 index 0000000..a138f74 --- /dev/null +++ b/version-spring-web/src/main/kotlin/ru/touchin/version/annotations/Versioned.kt @@ -0,0 +1,6 @@ +package ru.touchin.version.annotations + +@Target(allowedTargets = [AnnotationTarget.CLASS]) +internal annotation class Versioned( + val value: String = "" +) diff --git a/version-spring-web/src/main/kotlin/ru/touchin/version/annotations/VersionedApi.kt b/version-spring-web/src/main/kotlin/ru/touchin/version/annotations/VersionedApi.kt index 1938840..8fafc7e 100644 --- a/version-spring-web/src/main/kotlin/ru/touchin/version/annotations/VersionedApi.kt +++ b/version-spring-web/src/main/kotlin/ru/touchin/version/annotations/VersionedApi.kt @@ -1,6 +1,5 @@ package ru.touchin.version.annotations +@Versioned("/api/v\${api.version}") @Target(allowedTargets = [AnnotationTarget.CLASS]) -annotation class VersionedApi( - val value: String = "" -) +annotation class VersionedApi diff --git a/version-spring-web/src/main/kotlin/ru/touchin/version/annotations/VersionedRestController.kt b/version-spring-web/src/main/kotlin/ru/touchin/version/annotations/VersionedRestController.kt deleted file mode 100644 index 70c6473..0000000 --- a/version-spring-web/src/main/kotlin/ru/touchin/version/annotations/VersionedRestController.kt +++ /dev/null @@ -1,8 +0,0 @@ -package ru.touchin.version.annotations - -import org.springframework.web.bind.annotation.RestController - -@RestController -@VersionedApi("/api/v\${api.version}") -@Target(allowedTargets = [AnnotationTarget.CLASS]) -annotation class VersionedRestController diff --git a/version-spring-web/src/main/kotlin/ru/touchin/version/mapping/VersionedRequestMappingHandlerMapping.kt b/version-spring-web/src/main/kotlin/ru/touchin/version/mapping/VersionedRequestMappingHandlerMapping.kt index 43c01e7..dcdf71a 100644 --- a/version-spring-web/src/main/kotlin/ru/touchin/version/mapping/VersionedRequestMappingHandlerMapping.kt +++ b/version-spring-web/src/main/kotlin/ru/touchin/version/mapping/VersionedRequestMappingHandlerMapping.kt @@ -3,7 +3,7 @@ package ru.touchin.version.mapping import org.springframework.core.annotation.AnnotatedElementUtils import org.springframework.web.servlet.mvc.method.RequestMappingInfo import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping -import ru.touchin.version.annotations.VersionedApi +import ru.touchin.version.annotations.Versioned import java.lang.reflect.Method class VersionedRequestMappingHandlerMapping : RequestMappingHandlerMapping() { @@ -12,7 +12,7 @@ class VersionedRequestMappingHandlerMapping : RequestMappingHandlerMapping() { val mappingResult = super.getMappingForMethod(method, handlerType) ?: return null - val versionedAnnotation = AnnotatedElementUtils.findMergedAnnotation(handlerType, VersionedApi::class.java) + val versionedAnnotation = AnnotatedElementUtils.findMergedAnnotation(handlerType, Versioned::class.java) ?: return mappingResult val versionPath = resolveEmbeddedValuesInPatterns( diff --git a/version-spring-web/src/test/kotlin/ru/touchin/version/VersionedRequestMappingHandlerMappingMvcTest.kt b/version-spring-web/src/test/kotlin/ru/touchin/version/VersionedRequestMappingHandlerMappingMvcTest.kt index 1391e79..9331b7c 100644 --- a/version-spring-web/src/test/kotlin/ru/touchin/version/VersionedRequestMappingHandlerMappingMvcTest.kt +++ b/version-spring-web/src/test/kotlin/ru/touchin/version/VersionedRequestMappingHandlerMappingMvcTest.kt @@ -17,9 +17,10 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController -import ru.touchin.version.annotations.VersionedRestController +import ru.touchin.version.annotations.VersionedApi -@VersionedRestController +@VersionedApi +@RestController @RequestMapping("/app") class VersionController {