Skip to content
Snippets Groups Projects
Commit 285e5b94 authored by Tamas Bunth's avatar Tamas Bunth
Browse files

Fix Rest API: no wrapper needed

parent 6daa522a
No related branches found
No related tags found
No related merge requests found
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>) {
......
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
}
package mobildata.client.response
data class OutTag(var tags: List<String> = listOf())
......@@ -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")
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment