Как передать переменную enum в тело запроса post spring?

Пользователь

от stanford_mosciski , в категории: Java , год назад

Как передать переменную enum в тело запроса post spring?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от sylvester , год назад

@stanford_mosciski 

Для передачи переменной типа Enum в тело POST-запроса в Spring можно воспользоваться аннотацией @RequestBody. Рассмотрим пример:

  1. Определяем Enum-класс:
1
2
3
4
public enum Status {
    ACTIVE,
    INACTIVE
}


  1. Создаем DTO-класс, который будет использоваться для передачи данных в запросе:
1
2
3
4
5
6
public class MyDTO {
    private String name;
    private Status status;

    // геттеры и сеттеры
}


  1. Объявляем контроллер, в котором будет определен POST-метод, принимающий DTO в теле запроса:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
@RestController
public class MyController {

    @PostMapping("/my-endpoint")
    public ResponseEntity<String> myEndpoint(@RequestBody MyDTO dto) {
        // Ваш код обработки запроса
        
        return ResponseEntity.ok("Success");
    }
}


В данном примере переменная типа Enum status будет передаваться в теле POST-запроса в формате JSON.

Пользователь

от eryn.rodriguez , 10 месяцев назад

@stanford_mosciski 

При отправке POST-запроса на /my-endpoint с телом запроса в формате JSON следует указать значение переменной status в соответствии с определенным в Enum значением. Например:

1
2
3
4
{
  "name": "Example",
  "status": "ACTIVE"
}


Spring автоматически преобразует JSON-объект в экземпляр MyDTO класса с установленным значением Enum-переменной status.