HTTP 2

13. hodina DVOP WBB


Matěj Cajthaml — SSPŠ

©

Opakování

Je např. klasické kopírování složek verzovací systém?
Jaké věci nám sémantické verzování nabízí?
Jak fungují vzdálené větve v Gitu?
Proč se nesmí křížit tagy?
K čemu slouží značka HEAD?

Jak definujeme HTTP požadavek?

Jak definujeme HTTP odpověď?

Sociální síť

Práce

Zkusme navrhnout API (endpointy), které slouží k sociální síti, tedy: uživatelé, profily, příspěvky a další.

Jakými formáty lze předávat data (tělo/body) v API?

Datové formáty

Datové formáty

  • čistý text
  • XML
  • JSON
  • a další

XML

  • rodič HTML
  • byl vytvořen na předávání a uchovávání dat
  • nejsou definované žádné tagy

Ukázka XML

Jak se liší HTML a XML?

Může API předávat data ve formátu HTML?

JSON

  • = JavaScript Object Notation
  • stručný formát na předávání dat
  • čte se dobře strojově ale i lidmi
  • velmi se podobá obyčejnému JS (objekty a pole)

JSON datové typy

  • řetězec
  • číslo
  • objekt
  • pole
  • null

Ukázka JSON

Jak se liší JSON a JS zápis objektů?

Je tento zápis JSON platný?

Jaké výhody a nevýhody má plaintext, XML a JSON?

Platí tyto formáty pouze pro komunikaci Server → Klient?

Okolo API

Verzování API

  • číslování
  • oznámení
  • doby běhu

Kdy je potřeba změnit verzi API?

DevTools + Network

Jak funguje protokol HTTP? Jak vypadá komunikace?

Koumání nad API

Práce

Najděte si nějakou stránku, která využívá API (resp. rozdělený FE a BE), a podívejte se jak vypadají jednotlivé endpointy a jak vypadají jejich data.

AJAX

  • = Asynchronous JavaScript And XML
  • dovoluje nám vytvářet dynamické stránky
  • prakticky získáváme údaje pro stránku v kódu
  • není nutné refreshovat stránku
  • odesílání dat na server

Nástroje pro HTTP

  • někdy potřebujeme dělat HTTP requesty i jinde než v kódu
  • existují různé nastroje:

Shrnutí

Co je to AJAX?
Jaké formáty přenášení dat známe? Jaké jsou výhody a nevýhody?
Co dělá příkaz git pull?
Co je to verzování API? K čemu slouží?
K čemu v HTTP slouží hlavičky?

Děkuji za pozornost!

  • matej.cajthaml@ssps.cz
  • https://ssps.cajthaml.eu/