Как реализовать декларативные HTTP-клиенты со многими необязательными параметрами в Micronaut?

Я хотел бы использовать декларативный HTTP-клиент Micronaut для взаимодействия с REST API, имеющим много необязательных параметров запроса в его методах GET.

Пример. Существует API для GET-сигналов, в котором возвращаемые сигналы указываются в качестве параметров запроса. Я мог бы использовать API со следующим методом:

@Client("/alarm/alarms")
public interface AlarmApi {
  @Get 
  Single<Alarms> getAlarms(Optional<String> source, Optional<OffsetDateTime> from, Option<OffsetDateTime> to, Optional<Status> status, Optional<Severity> severity, Optional<Integer> pageSize, Optional<Boolean> order);

и запросить его, используя

alarms = alarmApi.getAlarms(source, Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.of(2000), Optional.empty());

который не прост в использовании. Лучше (ИМХО) было бы иметь что-то вроде

alarm = alarmApi.getAlarms().source(source).pageSize(2000);

Есть ли способ сделать что-то вроде этого "из коробки" с декларативным клиентом Micronaut?

0 ответов

Другие вопросы по тегам