diff --git a/backend/build.gradle.kts b/backend/build.gradle.kts index 48b9122..7ece67f 100644 --- a/backend/build.gradle.kts +++ b/backend/build.gradle.kts @@ -27,4 +27,10 @@ dependencies { testImplementation("io.ktor:ktor-server-tests-jvm:$ktor_version") testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version") implementation("io.ktor:ktor-server-cors:$ktor_version") + implementation("io.ktor:ktor-utils:$ktor_version") + implementation("io.ktor:ktor-serialization-kotlinx-json:$ktor_version") + implementation("io.ktor:ktor-server-content-negotiation:$ktor_version") + implementation("io.ktor:ktor-client-content-negotiation:$ktor_version") + implementation("io.ktor:ktor-serialization-jackson:$ktor_version") + implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3") } \ No newline at end of file diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/Test.kt b/backend/src/main/kotlin/no/nav/helse/sprik/Test.kt new file mode 100644 index 0000000..6fa1f04 --- /dev/null +++ b/backend/src/main/kotlin/no/nav/helse/sprik/Test.kt @@ -0,0 +1,10 @@ +package no.nav.helse.sprik + +class Test ( + var ord: String, + var tall: Int +) { + override fun toString(): String { + return "Test(ord='$ord', tall=$tall)" + } +} \ No newline at end of file diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/plugins/Routing.kt b/backend/src/main/kotlin/no/nav/helse/sprik/plugins/Routing.kt index bf3e889..630e07b 100644 --- a/backend/src/main/kotlin/no/nav/helse/sprik/plugins/Routing.kt +++ b/backend/src/main/kotlin/no/nav/helse/sprik/plugins/Routing.kt @@ -1,19 +1,39 @@ package no.nav.helse.sprik.plugins +import com.fasterxml.jackson.databind.SerializationFeature +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule import io.ktor.http.* +import io.ktor.serialization.jackson.* import io.ktor.server.routing.* import io.ktor.server.response.* import io.ktor.server.application.* +import io.ktor.server.plugins.contentnegotiation.* import io.ktor.server.plugins.cors.routing.* +import io.ktor.server.request.* +import no.nav.helse.sprik.Test fun Application.configureRouting() { install(CORS) { anyHost() allowMethod(HttpMethod.Get) + allowMethod(HttpMethod.Post) + //allowHeader(HttpHeaders.AccessControlAllowOrigin) + allowNonSimpleContentTypes = true + } + install(ContentNegotiation) { + jackson { + disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) + registerModule(JavaTimeModule()) + } } routing { get("/") { call.respondText("Hello World!") } + post("/test") { + val test = call.receive() + println(test) + //call.respondText(test.toString()) + } } } diff --git a/frontend/pages/index.tsx b/frontend/pages/index.tsx index 171cc7f..9d35c22 100644 --- a/frontend/pages/index.tsx +++ b/frontend/pages/index.tsx @@ -1,6 +1,7 @@ import "@navikt/ds-css"; import { Button, Heading } from "@navikt/ds-react"; import axios , { Axios, AxiosError } from "axios"; +import { log } from "console"; import useSWR from "swr"; const fetcher = (url: any) => axios.get(url).then(res => res.data) @@ -10,6 +11,23 @@ export default function Home() { const {data, error, isLoading} = useSWR('http://0.0.0.0:8080/', fetcher); console.log(data); + function post() { + axios.post("http://0.0.0.0:8080/test", { + ord: "heisann hoppsann", + tall: 7 + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then( (response) => { + console.log(response) + }).catch( (error) => { + console.log(error); + }) + } + + post() + return (