From 285e5b94b9ccfed9542170d725414d97b2fb6d82 Mon Sep 17 00:00:00 2001 From: Tamas Bunth <tamas.bunth@collabora.co.uk> Date: Sat, 3 Mar 2018 15:32:22 +0100 Subject: [PATCH] Fix Rest API: no wrapper needed --- src/main/kotlin/mobildata/ApiApplication.kt | 24 +++++++++++++++++++ src/main/kotlin/mobildata/client/TagClient.kt | 11 --------- .../mobildata/client/response/OutTag.kt | 3 --- .../kotlin/mobildata/model/inout/Register.kt | 2 ++ .../kotlin/mobildata/ApiApplicationTests.kt | 1 - 5 files changed, 26 insertions(+), 15 deletions(-) delete mode 100644 src/main/kotlin/mobildata/client/TagClient.kt delete mode 100644 src/main/kotlin/mobildata/client/response/OutTag.kt diff --git a/src/main/kotlin/mobildata/ApiApplication.kt b/src/main/kotlin/mobildata/ApiApplication.kt index 0d79b06..ab1474d 100644 --- a/src/main/kotlin/mobildata/ApiApplication.kt +++ b/src/main/kotlin/mobildata/ApiApplication.kt @@ -1,7 +1,13 @@ package mobildata +import com.fasterxml.jackson.annotation.JsonRootName +import com.fasterxml.jackson.core.JsonParseException +import com.fasterxml.jackson.core.JsonParser +import com.fasterxml.jackson.databind.* +import com.fasterxml.jackson.datatype.jdk8.Jdk8Module import mobildata.jwt.ExposeResponseInterceptor import org.springframework.boot.SpringApplication +import org.springframework.boot.autoconfigure.EnableAutoConfiguration import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.cache.annotation.EnableCaching import org.springframework.context.annotation.Bean @@ -9,10 +15,15 @@ import org.springframework.context.annotation.Configuration import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean import org.springframework.validation.beanvalidation.MethodValidationPostProcessor import org.springframework.web.servlet.config.annotation.* +import com.fasterxml.jackson.annotation.JsonInclude +import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder + + @Configuration @EnableCaching +@EnableAutoConfiguration @SpringBootApplication class ApiApplication : WebMvcConfigurer { @@ -52,6 +63,19 @@ class ApiApplication : WebMvcConfigurer { @Bean fun validator() = LocalValidatorFactoryBean() + + + @Bean + fun objectMapperBuilder(): Jackson2ObjectMapperBuilder { + val builder = Jackson2ObjectMapperBuilder() + val mapper = ObjectMapper() + mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false) + mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true) + mapper.registerModule(Jdk8Module()) + builder.configure(mapper) + return builder + } + } fun main(args: Array<String>) { diff --git a/src/main/kotlin/mobildata/client/TagClient.kt b/src/main/kotlin/mobildata/client/TagClient.kt deleted file mode 100644 index c87fded..0000000 --- a/src/main/kotlin/mobildata/client/TagClient.kt +++ /dev/null @@ -1,11 +0,0 @@ -package mobildata.client - -import feign.Headers -import feign.RequestLine -import mobildata.client.response.OutTag - -interface TagClient { - @RequestLine("GET /api/tags") - @Headers("Content-Type: application/json") - fun tags(): OutTag -} diff --git a/src/main/kotlin/mobildata/client/response/OutTag.kt b/src/main/kotlin/mobildata/client/response/OutTag.kt deleted file mode 100644 index 0c42ec8..0000000 --- a/src/main/kotlin/mobildata/client/response/OutTag.kt +++ /dev/null @@ -1,3 +0,0 @@ -package mobildata.client.response - -data class OutTag(var tags: List<String> = listOf()) diff --git a/src/main/kotlin/mobildata/model/inout/Register.kt b/src/main/kotlin/mobildata/model/inout/Register.kt index 4330448..3b61894 100644 --- a/src/main/kotlin/mobildata/model/inout/Register.kt +++ b/src/main/kotlin/mobildata/model/inout/Register.kt @@ -5,6 +5,8 @@ import javax.validation.constraints.NotNull import javax.validation.constraints.Pattern import javax.validation.constraints.Size + + @JsonRootName("user") class Register { @NotNull(message = "can't be missing") diff --git a/src/test/kotlin/mobildata/ApiApplicationTests.kt b/src/test/kotlin/mobildata/ApiApplicationTests.kt index d1fb107..f196c33 100644 --- a/src/test/kotlin/mobildata/ApiApplicationTests.kt +++ b/src/test/kotlin/mobildata/ApiApplicationTests.kt @@ -4,7 +4,6 @@ import feign.Feign import feign.gson.GsonDecoder import feign.gson.GsonEncoder import mobildata.client.ProfileClient -import mobildata.client.TagClient import mobildata.client.UserClient import mobildata.client.response.InLogin import mobildata.client.response.InRegister -- GitLab