Как передать переменную enum в тело запроса Post Spring

190
04 октября 2021, 07:10

Есть enam и контроллер как правильно передать enum через json?

public enum Status {
    One,
    Two,
    Three;
}
@PostMapping("/api/{id}")
    public ResponseEntity<Model> post(
            @RequestBody Status status,
            @PathVariable Long id
    ) {
        logic
        return ResponseEntity.ok(trip);
    }

если я отправляю такой json

{"status":"One"}

ошибка Required request body is missing

Answer 1

Если хочется передавать такой json объект содержащий поле status

{"status":"One"}

то предполагается что в приложении есть класс, например такой

import lombok.*;
    @ToString
    public class StatusDTO {
        @Getter
        @Setter
        @JsonProperty(value = "status")
        private Status status;
        enum Status {
            One,
            Two,
            Three;
        }
    }

в контроллере

@RequestBody StatusDTO status

Если в контроллере хочется принимать именно объект перечисления, то придется изменить тело запроса

["One"]

и принимать массив в контроллере

@RequestBody Status[] status
READ ALSO
почему нельзя создать пакет(package)

почему нельзя создать пакет(package)

Создал, допустим, на диске D (ну или где угодно на компьютере) Testjava, компилю через cmd

196
mysql: запись в базу данных несколько записей по одному запросу

mysql: запись в базу данных несколько записей по одному запросу

Подскажите, можно ли с помощью SQL выполнить запись в базу (insert) несколько записей для каждой найденной записи,

90
Передача таблиц из MSSQL в MYSQL

Передача таблиц из MSSQL в MYSQL

В общем, на MS SQL есть прилинкованный MYSQL и я могу обращаться к нему через OPENQUERY, что бы получить небольшой кусок данных, с которым хочу что-то...

150
React css modules и путь

React css modules и путь

Помогите пожалуйста, мне выдает вот такую ошибку при подключении css modules:

83