Примеры конечных точек:
- При создании объекта-
Код: Выделить всё
@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);
}
Код: Выделить всё
{
"data": {
"userId": 2,
"token": "eyJhbGciOiJIUzI1NiJ9.eyJzd3-WIiOiJheXVzaDIwYXBydwaWxAZ21haWwuY29tIiwiZXhwIjoxNjc4NzEyNjIyLCJpYXQiOjE2Nzg3MTI1NjJ9.xLNdJ4L4JjmnN3pkkp3gm3RrzLU6lBG2-mGLHn4f_Pg"
},
"status": "Success",
"code": "2000"
}
- При возникновении исключения –
Код: Выделить всё
@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);
}
Код: Выделить всё
{
"message": "2002",
"code": "Token is expired",
"status": "Error"
}
Вышеуказанные API работают должным образом, выдавая ответ с кодом состояния 200 в обоих случаях. Я добавил собственный код состояния как часть ответа API.
Теперь мой вопрос: правильно ли предоставлять собственный код состояния и проверять его на стороне клиента (например, 2000 для успеха, 2001 для неудачи и 2002 для ошибки), или мне следует использовать Http-статус, например 200 для успеха, 201 для созданного, 404 для не найденного в ResponseEntity?
Я хочу убедиться, что следую правильным правилам.
Подробнее здесь: https://stackoverflow.com/questions/757 ... pring-boot