So wählen Sie den richtigen HTTP-Antwortcode für den REST-API-Endpunkt aus: Spring BootJava

Java-Forum
Anonymous
 So wählen Sie den richtigen HTTP-Antwortcode für den REST-API-Endpunkt aus: Spring Boot

Post by Anonymous »

Ich arbeite an Spring Boot-Anwendungen, um REST-APIs für Mobile Anwendungen zu entwickeln.

Beispiele für Endpunkte sind-
  • Beim Erstellen einer Entität-

Code: Select all

@PostMapping("/new-user")
public ResponseEntity createUser(
@Valid /* Enable validation */ @RequestBody UserDto userDto) {
UserDto createdUserDto = this.userService.createUser(userDto);
SuccessResponse successResponse = new SuccessResponse(AppConstants.SUCCESS_CODE,
AppConstants.SUCCESS_MESSAGE, createdUserDto);
return new ResponseEntity(successResponse, HttpStatus.OK);
}
Die Antwort lautet in diesem Fall wie folgt:

Code: Select all

{
"data": {
"userId": 2,
"token": "eyJhbGciOiJIUzI1NiJ9.eyJzd3-WIiOiJheXVzaDIwYXBydwaWxAZ21haWwuY29tIiwiZXhwIjoxNjc4NzEyNjIyLCJpYXQiOjE2Nzg3MTI1NjJ9.xLNdJ4L4JjmnN3pkkp3gm3RrzLU6lBG2-mGLHn4f_Pg"
},
"status": "Success",
"code": "2000"
}
  • Wenn eine Ausnahme auftritt-

Code: Select all

 @ExceptionHandler(DuplicateResourceException.class) // add comma separated list of Exception classes
public ResponseEntity duplicateResourceFoundException(DuplicateResourceException ex) {
ApiResponse apiResponse = new ApiResponse(ex.getMessage(), AppConstants.ERROR_CODE, AppConstants.ERROR_MESSAGE);
return new ResponseEntity(apiResponse, HttpStatus.OK);
}
Die Antwort lautet in diesem Fall wie folgt:

Code: Select all

{
"message": "2002",
"code": "Token is expired",
"status": "Error"
}
Meine Frage-

Die oben genannten APIs funktionieren wie erwartet und geben in beiden Fällen die Antwort mit dem Statuscode 200 aus. Ich habe als Teil der API-Antwort einen benutzerdefinierten Statuscode hinzugefügt.

Meine Frage ist nun, ob es richtig ist, einen benutzerdefinierten Statuscode bereitzustellen und ihn auf der Clientseite zu überprüfen (z. B. 2000 für Erfolg, 2001 für Fehler und 2002 für Fehler), oder sollte ich den HTTP-Status wie 200 für Erfolg, 201 für erstellt, 404 für nicht gefunden in ResponseEntity verwenden?

/>Ich möchte sicherstellen, dass ich dem Recht folge Konvention.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post