Статус ответа HTTP SpringBoot Kotlin Api

Я начинаю с kotlin, и если кто-нибудь может мне помочь, у меня возник вопрос о том, как я могу вернуть статус http, когда мой true, если он вернет 200 Ok, и когда это какой-либо другой путь, верните 404 NotFound.

Я пытался сделать это в соответствии с приведенным ниже кодом, но он возвращает статус 200 Ok, во всех ситуациях

@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() } } 

Я думаю, что блок else может сделать это

  @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() } } 

Вы никого не выбрасываете исключение, поэтому блок catch не выполняется. Вот обновленный код.

@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() } } 

Вы можете проверить заголовок ответа через curl. Например curl -v -X DELETE http://YOUR_API_URL