следуя моему проекту в kotlin, вы можете написать код, подобный приведенному ниже:
@Configuration
class ResumeRoute {
@Bean
fun resumeRoutes(@Value("\${baseServer:http://localhost:8080}") baseServer: String, resumeRepository: ResumeRepository) = router {
POST("/resume")
{
it.principal().flatMap {
resumeRepository.save(Resume.emptyResume(UUID.randomUUID().toString(), it.name, Language.EN)).toMono()
}.flatMap { created(URI("${baseServer}/resume/${it.id}")).build() }
}
}
}
, даже если это версия kotlin, а не java, важно то, что вы должныпрежде чем получить свою сущность для получения идентификатора, а затем использовать ее для создания ответа сервера
, поэтому ваш код должен выглядеть примерно так:
public Mono<ServerResponse> post(ServerRequest request) {
return request.bodyToMono(Person.class)
.map(personManager::save)
.flatMap(savedPerson ->
created((UriComponentsBuilder.fromPath("people/" + savedPerson.getId()).build().toUri()))
.body(fromObject(savedPerson)));
}
Я надеюсь, что это может помочь вам