HTTP-Status für @PutMapping und @DeleteMapping für die Spring Boot REST API?Java

Java-Forum
Anonymous
 HTTP-Status für @PutMapping und @DeleteMapping für die Spring Boot REST API?

Post by Anonymous »

Ich habe HttpStatus.OK für alle meine Anfragen im Spring Bot Controller verwendet. Aber mir wurde klar, dass es gut ist, einen richtigen HTTP-Status zurückzugeben, und ich begann, Folgendes zu verwenden:

Code: Select all

GET --> Ok
POST -> Created
PUT --> Ok ???
DELETE --> NoContent ???
Aber ich bin mir bei PUT und DELETE nicht sicher. Einige Leute schlagen vor, NoContent für DELETE und Ok für PUT zu verwenden. Aber ich bin verwirrt und habe keine Ahnung, welcher geeignet ist.
Welche Statuscodes sollte ich also für PUT und DELETE verwenden? Hier ist ein Beispiel für die Verwendung von DELETE, aber ich bin mir nicht sicher, ob wir den Textkörper zurückgeben können, wenn der Statuscode „NoContent“ ist (ist das sinnvoll?)

Code: Select all

@DeleteMapping("/categories/{id}")
public ResponseEntity deleteById(@PathVariable long id) {
final CommandResponse response = categoryService.deleteById(id);
return ResponseEntity
.status(HttpStatus.NO_CONTENT)
.body(new ApiResponse(Instant.now(clock).toEpochMilli(), SUCCESS, response));
}
Update: Basierend auf der Situation halte ich die folgenden Implementierungen für in Ordnung:
#1:

Code: Select all

@DeleteMapping("/categories/{id}")
public ResponseEntity deleteById(@PathVariable long id) {
categoryService.deleteById(id);
return ResponseEntity.ok(new ApiResponse(Instant.now(clock).toEpochMilli(), SUCCESS));
}
#2:

Code: Select all

@DeleteMapping("/categories/{id}")
public ResponseEntity deleteById(@PathVariable long id) {
categoryService.deleteById(id);
return ResponseEntity
.status(HttpStatus.NO_CONTENT)
.build();
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post