Get запрос срабатывает дважды. Почему?
Пытаюсь отправить Get запрос на метод update в controller, но он срабатывает дважды. Вот URL запроса localhost:8080/currency/USD/EUR:
@RestController
@Slf4j
@RequestMapping("/currency")
public class CurrencyController {
private CurrencyService currencyService;
@Autowired
public CurrencyController(CurrencyService currencyService) {
this.currencyService = currencyService;
}
///currency/RUB/EUR пример запросса 1EUR=84RUB
@GetMapping("/{symbols}/{base}")
public ResponseEntity update(@PathVariable String symbols, @PathVariable String base) {
log.warn(currencyService.update(symbols, base).toString());
return currencyService.update(symbols, base);
}
}
Service method update
public ResponseEntity update(@NonNull String symbols, @NonNull String base) {
log.warn("OKAY Start!");
Long id = currencyRepository.findMaxId() + 1;
Currency currencyLoadDate = new Currency();
String apiRequest = API.concat("?symbols=").concat(symbols).concat("&base=").concat(base);
AnswerLatestData answerLatestData = restTemplate.getForEntity(apiRequest, AnswerLatestData.class).getBody();
Date date = answerLatestData.getDate();
Double value = Objects.isNull(answerLatestData.getRates().getRub())
? Objects.isNull(answerLatestData.getRates().getEur())
? answerLatestData.getRates().getUsd()
: answerLatestData.getRates().getEur()
: answerLatestData.getRates().getRub();
currencyLoadDate.setId(id);
currencyLoadDate.setQuotedTitleCurrency(symbols);
currencyLoadDate.setBasicTitleCurrency(base);
currencyLoadDate.setDate(date);
currencyLoadDate.setValue(value);
log.warn("HELLO");
if (!Objects.isNull(currencyRepository.findByDateAndBasicTitleCurrencyAndQuotedTitleCurrency(date, base, symbols))) {
log.warn("TRUE");
return ResponseEntity.notFound().build();
} else {
log.warn("FALSE");
return ResponseEntity.ok(currencyRepository.save(currencyLoadDate));
}
}
Output log
2020-08-03 18:05:55.502 WARN 18093 --- [nio-8080-exec-1] r.k.s.currency.service.CurrencyService : OKAY Start!
2020-08-03 18:05:56.608 WARN 18093 --- [nio-8080-exec-1] r.k.s.currency.service.CurrencyService : HELLO
2020-08-03 18:05:56.745 WARN 18093 --- [nio-8080-exec-1] r.k.s.currency.service.CurrencyService : TRUE
2020-08-03 18:05:56.746 WARN 18093 --- [nio-8080-exec-1] r.k.s.c.controller.CurrencyController : <404 NOT_FOUND Not Found,[]>
2020-08-03 18:05:56.746 WARN 18093 --- [nio-8080-exec-1] r.k.s.currency.service.CurrencyService : OKAY Start!
2020-08-03 18:05:56.794 WARN 18093 --- [ s0-io-3] c.d.o.d.i.core.cql.CqlRequestHandler : Query '[0 values] select MAX(id) FROM currency ALLOW FILTERING' generated server side warning(s): Aggregation query used without partition key
2020-08-03 18:05:56.876 WARN 18093 --- [nio-8080-exec-1] r.k.s.currency.service.CurrencyService : HELLO
2020-08-03 18:05:56.929 WARN 18093 --- [nio-8080-exec-1] r.k.s.currency.service.CurrencyService : TRUE*