-
Couldn't load subscription status.
- Fork 69
Closed
Description
The ResponseEntityResultHandler does not resolve the return type properly.
Example :
data class TestData(val value: String)
private val repo = mutableListOf<TestData>()
@RequestMapping("/testJson", produces = [MediaType.APPLICATION_JSON_UTF8_VALUE], consumes = [MediaType.APPLICATION_JSON_UTF8_VALUE])
@Controller
class JsonController {
@GetMapping("/suspend/{value}")
@ResponseBody
suspend fun get(@PathVariable value: String) = repo.find { it.value == value }
// FAIL (IllegalStateException on ViewResolutionResultHandler because it is not handled by the ResponseEntityResultHandler)
@PostMapping("/suspend")
suspend fun createSuspend(@RequestBody value: TestData): ResponseEntity<TestData> {
repo.add(value)
delay(100)
return ResponseEntity
.created(URI("/testJson/suspend/${value.value}"))
.body(value)
}
// WORKS
@PostMapping("/mono")
fun create(@RequestBody value: TestData): Mono<ResponseEntity<TestData>> {
repo.add(value)
//delay(100)
return Mono.just(ResponseEntity
.created(URI("/testJson/suspend/${value.value}"))
.body(value))
}
}Metadata
Metadata
Assignees
Labels
No labels