Как выбрать правильный код ответа HTTP для конечной точки REST API: Spring BootJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как выбрать правильный код ответа HTTP для конечной точки REST API: Spring Boot

Сообщение Anonymous »

Я работаю над приложениями Spring Boot, чтобы разрабатывать REST API для мобильных приложений.

Примеры конечных точек:
  • При создании объекта-

Код: Выделить всё

@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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»