>80% проекта состоит из http запроса (GET, POST)
для запроса использую WebClient.
почти в каждом сервисе дублируется один и тот же код с разницей GET и POST(если POST, то еще надо передавать объект)
вопрос: Можно ли как-то это все сделать по уму?
пример кода:
public Example getExample(String name, int pin) {
try {
return client.get()
.uri(URI + name + "&" + pin)
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(Example.class)
.block();
} catch (Exception exception) {
log.error("Причина ошибки: {}", exception.getMessage());
throw new PartnerException(exception.getMessage());
}
}
public void subscribeForNotification(String account){
try {
client.post()
.uri("mock.io")
.body(BodyInserters.fromFormData("command", "subscribe")
.with("account", account))
.retrieve()
.bodyToMono(SubscribeDto.class)
.block();
log.info("{}: подписка успешно оформлена!", account);
}catch (Exception e){
log.error("Can`t share account {}", account);
}
}
public Object pay( PaymentInfo info) {
try {
return client.post()
.uri(properties.getPayUrl())
.bodyValue(info)
.retrieve()
.bodyToMono(Info.class)
.block();
} catch (Exception exception) {
log.error("Не удалось сделать запрос на оплату {}", exception.getMessage());
throw new PartnerException(exception.getMessage());
}
}