1. Zadání

Co je cílem zadání?

  • Vytvoření datových tříd s vlastnostmi, které přesně kopírují strukturu a názvy klíčů v očekávaném výstupu z externího JSON rozhraní.
  • Asynchronní stažení dat o počasí ze vzdáleného serveru pomocí HTTP klienta a jejich automatický převod do připravených objektů na základě manuálního kliknutí uživatele.
  • Dynamické vykreslení úspěšně načtených meteorologických údajů, jako je teplota, rychlost větru a čas měření, do graficky přehledné karty.

Zadání

Vytvořte C# třídy WeatherResponse a do ní vnořenou třídu CurrentWeather, které budou sloužit jako "překladač" pro data ze serveru. Tyto třídy musí obsahovat vlastnosti (např. pro teplotu, rychlost větru a čas měření), jejichž názvy přesně odpovídají klíčům v JSON datech. Pro stažení aktuálních dat o počasí v Praze použijte tuto URL adresu ze služby Open-Meteo: https://api.open-meteo.com/v1/forecast?latitude=50.088&longitude=14.4208&current_weather=true

V Razor komponentě pomocí direktivy @inject do stránky připojte systémovou službu HttpClient, která umí odesílat požadavky po internetu. Vytvořte tlačítko, na které navážete asynchronní C# metodu. V této metodě pomocí await Http.GetFromJsonAsync() odešlete dotaz na výše uvedenou URL adresu a získaná data automaticky převeďte do svých připravených tříd. Stažené informace následně vypište do HTML, které se uživateli zobrazí až ve chvíli, kdy data dorazí ze serveru.

Příklad, jak by mohla stránka vypadat:

Pokud se okno nenačetlo, klikněte zde.