www-2324

Opis

Dzisiejszy lab kontynuuje serię związaną z przygotowaniem JavaScriptowego edytora obrazków SVG.

Zadanie

Dzisiejsze zadanie polega na napisaniu programu w TypeScript, który będzie komunikował się z serwerem i ściągał obrazki.

Zadanie jest sztuczne, gdyż prawdopodobnie nie ma sensu ściągać obrazków z opóźnieniem z serwera, ale ma na celu pokazanie jak można zaimplementować takie rozwiązanie.

Po stronie serwerowej należy napisać (najlepiej w fastAPI) prosty serwer, który będzie zwracał obrazki (najlepiej jako JSONy).

Uwagi:

  1. Raz na jakiś czas (losowo) serwer powinien zwracać błąd np. 500
  2. Raz na jakiś czas (losowo) serwer powinien zwracać obrazek, który jest zbyt duży (np. 10MB)
  3. Raz na jakiś czas (losowo) serwer powinien zwracać obrazek, który jest długo generowany (np. 10s), i to nie powinno blokować działania serwera (użyj async)

Po stronie klienta, należy napisać program, który będzie ściągał obrazki z serwera i wyświetlał je na stronie.

  1. Program powinien wyświetlać listę “pustych miejsc” na obrazki, które będą się ładowały.
  2. Początkowo w pustym miejscu powinna się wyświetlać animacja ładowania (np. obracający się spinner)
  3. Po załadowaniu obrazka, animacja powinna zniknąć, a obrazek powinien się wyświetlić
  4. Jeśli obrazek nie może zostać załadowany (np. zwrócono błąd 500), to w miejscu obrazka powinien pojawić się komunikat o błędzie i przycisk “Spróbuj ponownie”