В последнее время всё чаще слышу от разрабов фразы вроде: «Ну мы дергаем их фейн…», «Там фейн запросы делает…». Кажется, что в контексте диалога всё понятно — особенно когда тебе шарят экран и вы обсуждаете задачу.
Но если попытаться объяснить своими словами, выходит что-то вроде: «Ну, это такая штука в коде…» 🤔
Давайте разберёмся, что же такое Feign на самом деле, как он работает и почему о нём стоит знать.
Что такое Feign?
Feign — это декларативный HTTP-клиент для Java, который придумали в Netflix, чтобы упростить взаимодействие с RESTful веб-сервисами. С Feign можно написать пару строк кода вместо полноценного запроса, оставляя остальную логику библиотеке. Всё делается через аннотации в интерфейсах, так что работать с внешними API становится намного проще.
Как это работает на практике?🦔
Например, банк сотрудничает с внешними сервисами для проверки кредитных историй. Когда пользователь подаёт заявку на кредит, система отправляет запрос в эти сервисы, чтобы узнать его кредитную историю. Вместо того чтобы писать длинный код для каждого запроса, разработчик создаёт интерфейс и "дергает их фейн":
@FeignClient(name = "credit-history-client", url = "https://api.creditcheck.com")
public interface CreditHistoryClient {
@GetMapping("/history")
CreditHistoryResponse getCreditHistory(@RequestParam("userId") String userId);
}
Здесь FeignClient указывает базовый URL, а GetMapping настраивает конкретный запрос. Теперь, чтобы узнать кредитную историю клиента, достаточно вызвать метод getCreditHistory() — Feign автоматически сделает всю работу за кулисами.
Зачем это знать аналитикам? 🤔
✅Во-первых, чтобы быть в одной плоскости с разработчиками и лучше понимать, как работают интеграции между системами.
✅Во-вторых, такие знания иногда можно выгодно использовать на собесе — интервьюер сразу подумает, что кандидат действительно в шарит.
А вы сталкивались с Feign в своей работе? Часто ли вообще приходится смотреть в код? Делитесь опытом в комментариях👇