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);
}
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);
}
Code: Select all
{
"message": "2002",
"code": "Token is expired",
"status": "Error"
}
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.
 Mobile version
 Mobile version