На стороне KTOR я думаю, что я настроил сериализацию
install(ContentNegotiation) {
serialization(
contentType = ContentType.Application.Json,
json = Json(
DefaultJsonConfiguration.copy(
prettyPrint = true
)
)
)
}
Но когда я отправляю сообщение на эту конечную точку, я получаю Тип содержимого text / plain не поддерживается
мой маршрут выглядит следующим образом
post("/"){
try {
//val request = call.receive<String>()
val request = call.receive<AuthorREQ>()
call.respond(request)
}catch (e:Exception){
val foo =true
}
}
Мой код на стороне клиента выглядит следующим образом.
suspend fun <R: REQ>save(req:R, ctx:ModelCtx, deserializationStrategy: KSerializer<R>){
val fetchAddy = "$REST_SERVICE_ADDRESS${ctx.getStub()}"
val body = Json.stringify(deserializationStrategy, req)
val responsePromise = window.fetch(fetchAddy, object : RequestInit {
override var method: String? = "POST"
override var mode: RequestMode? = RequestMode.NO_CORS
override var headers = buildHeader()
override var body = body })
val response = responsePromise.await()
val jsonPromise = response.json()
val json = jsonPromise.await()
}
jvm gradle: реализация ("org.jetbrains.kotlinx: kotlinx-serialization-runtime : $ serialization_version ")
js gradle: реализация (" org.jetbrains.kotlinx: kotlinx-serialization-runtime- js: $ serialization_version ")
проект отлично работает с Мои маршруты get, клиент может использовать их без проблем ... Также меняются мои запросы на следующие, но я не думаю, что именно так это и должно быть.
val request = call.receive<String>()