jak łączyć się z Api

Jak łączyć się z zewnętrznym API w Javie

REST API jest coraz powszechniej wykorzystywane w przeróżnych aplikacjach. Często jest też wykorzystywany w aplikacjach do pozyskania dodatkowych danych dla aplikacji. Takich jak np. dane o aktualnej pogodzie. W kolejnym filmie pokazuję, jak łączyć się z takim zewnętrznym API. Bardzo dużo uwagi poświęcam też dobrym praktykom. Mówię o tym, jakie problemy można przy tym napotkać i jak ich unikać.

Pisałem już o tym jak tworzyć REST API. Teraz przyszedł czas, żeby trochę opowiedzieć o tym, jak korzystać z jakiegoś istniejącego Api. I w tym odcinku pokazuję to na przykładzie api pozwalającego pobierać dane o aktualnej pogodzie. Korzystam przy tym z serwisu openweathermap.org, który takie dane udostępnia za darmo. Możesz tan znaleźć zarówno dane o aktualnej pogodzie, jak i prognozy pogody na kilka kolejnych dni.

 

Cały kod aplikacji, którą przedstawiam jest wygenerowany poprzez Spring Boota. A do samego połączenia z usługami pogody używam RestTemplate, czyli klienta http, który jest wbudowany w Springa. Dzięki temu nie muszę importować, żadnych dodatkowych zależności.

Jak się dowiedziałem już po premierze filmu, RestTemplate nie jest już rozwijany i na razie jest jeszcze w fazie utrzymania, więc będą w nim poprawiane ewentualne błędy. Natomiast w kolejnych wersjach Springa zostanie on oznaczony @Deprecated. Korzystałem z tego narzędzia od wielu lat, wiec naturalne dla mnie było użycie go też tutaj. Ale nie jest to problemem, ponieważ idea całego filmu była taka, żeby można było łato wymienić klienta http, więc cała treść jest jak najbardziej aktualna 😉 Jako alternatywę twórcy spring polecają WebClienta, który pochodzi z pakietu Spring Webflux, o którym też już pisałem na blogu. WebClienta jest o wiele nowocześniejszy i przede wszystkim działa także asynchronicznie (czego RestTemplate nie wspiera).

 

W tej części znajdziesz:

  • Omówienie aplikacja, na której oparty jest przykład
  • Omówienie Api OpenWeatherMap
  • Testowanie api przy użyciu Postmana
  • Omówieni klientów Http
  • Pobieranie danych za pomocą RestTemplate
  • Jak sparametryzować wywołanie klienta http?
  • Jak integrować klienta http z aplikacją (separacja kodu)?
  • Konwersja jsona na obiekt
  • Przemapowanie odpowiedzi usługi na dto aplikacji

 

Powiązane artykuły:

Feign deklaratywny klient http

Kod dostępny na githubie: https://github.com/matdabrowski/youtube/tree/main/WeatherRestApi

 

✅ Zapisz się na Newsletter

Mini kurs testy jednostkowe

Mateusz Dąbrowski

Cześć jestem Mateusz, zajmuję się programowaniem już ponad 12 lat z czego ponad 8 programuję w Javie. Zapraszam Cię do lektury mojego bloga. Możesz przeczytać więcej o mnie >>TUTAJ<<

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *