Estado de respuesta HTTP SpringBoot Kotlin Api

Estoy comenzando en kotlin y si alguien puede ayudarme, he tenido una pregunta sobre cómo puedo devolver el estado de http, cuando es cierto si devuelve 200 Ok y cuando es de otra manera, devuelve 404 NotFound.

Traté de hacerlo de acuerdo con el siguiente código, pero solo está devolviendo el estado 200 Ok, en todas las situaciones

@DeleteMapping("{id}") fun delete(@PathVariable id: Long): ResponseEntity<Unit> { try { if (dogRepository.exists(id)) { dogRepository.delete(id) } return ResponseEntity.ok().build() } catch (e: Exception) { return ResponseEntity.notFound().build() } } 

Creo que un bloque else puede hacer eso

  @DeleteMapping("{id}") fun delete(@PathVariable id: Long): ResponseEntity<Unit> { try { if (dogRepository.exists(id)) { dogRepository.delete(id) return ResponseEntity.ok().build() } else { return ResponseEntity.notFound().build() } } catch (e: Exception) { return ResponseEntity.notFound().build() } } 

No estás lanzando una exception a ningún lado, por lo tanto, el locking catch no se ejecuta. Aquí está el código actualizado.

@DeleteMapping("{id}") fun delete(@PathVariable id: Long): ResponseEntity { try { if (dogRepository.exists(id)) { dogRepository.delete(id) return ResponseEntity.ok().build() } return ResponseEntity.notFound().build() } catch (e: Exception) { return ResponseEntity.notFound().build() } }
@DeleteMapping("{id}") fun delete(@PathVariable id: Long): ResponseEntity { try { if (dogRepository.exists(id)) { dogRepository.delete(id) return ResponseEntity.ok().build() } return ResponseEntity.notFound().build() } catch (e: Exception) { return ResponseEntity.notFound().build() } } 

Puede verificar el encabezado de respuesta mediante curl. Por ejemplo, curl -v -X DELETE http://YOUR_API_URL

  • Clase de datos de SpringBoot + Jackson + Kotlin: annotations de campo ignoradas
  • Spring Boot with AsyncRestTemplate Netty Client falla
  • BadCnetworkingentialsException: no se pudo get el token de acceso con la security de arranque de resorte Oauth2 en GAE
  • No se puede conectar a Remote Mongo DB mediante Springboot
  • Spring Boot: Agregar @Transactional produce java.lang.ClassNotFoundException: org.aspectj.util.PartialOrder $ PartialComparable
  • El controller de exception Spring Boot @ControllerAdvice no se activa
  • No puedo excluir MongoAutoConfiguration en Springboot-Kotlin (MongoSocketOpenException)
  • Spring Boot @ Autoajustado con Kotlin en @Service siempre es nulo
  • Usando una constante de Java en un parámetro de anotación de Kotlin
  • SpringBoot ArrayIndexOutOfBoundsException MethodParameter.getGenericParameterType
  • Analizando un object json con un campo dynamic en Kotlin