MVOP WBF
Bc. Matěj Cajthaml — SSPŠ
©
DOM ve Vue nepoužíváme. Proč?
\r\n
Co je ale tím objektem?
Objekt (object, endpoint, zdroj) je daná URL adresa, na které se data upravují. Na serveru definujeme co je za daným objektem definováno.
Jak se liší PUT, PATCH a POST?
Co ukládáme uvnitř hlaviček?
Je počet hlaviček omezen?
Hlavičky jsou vždy na novém řádku, na něm je jméno a hodnota rozdělené dvojtečkou a mezerou (:
).
Proč je metoda první částí dat?
Může HTTP předávat HTML?
Kde je nutný backend?
Co se na backendu děje?
Pokuste se API k nějaké službě najít.
https://api-ssps.cajthaml.eu
/subject/61253075a238ce375c4ade63
/grading
/user/612539031a6bab58d056b34b
Nyní víme, jak se komunikuje v HTTP.
čistýtext
rodičHTML
Jak se liší HTML a XML?
Kdy je potřeba změnit verzi API?
DevTools + Network
Jak funguje protokol HTTP? Jak vypadá komunikace?
Otevřete si nějakou stránku a podívejte se na požadavky, které probíhají. Jak vypadají data požadavků? Jaké mají metody? Nalezněte něco zajímavého.
Zkusme navrhnout API (endpointy), které slouží ke správě obsahu na webových stránkách. Tedy: příspěvky, uživatele, komentáře a další.
Zkusme navrhnout API (endpointy), které slouží ke správě obchodu (bez administrace), tedy: předměty, přihlášení, košík, objednávka a další.
Jak se liší aktuální přístup získávání stránek a AJAX?
XMLHttpRequest
XMLHttpRequest
Líbí se Vám tento postup?
XMLHttpRequest
Fetch
Fetch
dokázal přečíst string JSONu do objektů?JSON.stringify(obj)
JSON.parse(str)
JSON
Jaký problém by mohl nastat, když můžeme v JS posílat požadavky?
Access-Control-Allow-Origin: https://cajthaml.eu
Access-Control-Allow-Origin: *
OPTIONS
Je možné v ACAO hlavičce nastavit více domén?
V službách na portálu si zařidte přístup k ukázkovému API. Najděte dokumentaci API, vytvořte si účet a prozkoumejte API.
Odpovězte na následující otázky:
.vue
nejsou v prohlížeči zobrazitelnénpm run dev
nám při změně naší aplikaci sestaví znovunpm run build
public/index.html
s odkazy na JS balíčky
Sestavená aplikace neobsahuje nepoužíváne assety a celkově věci pro development.
Když aplikaci sestavíme, Vue automaticky počítá, že se bude nacházet na hlavní složce domény
— https://smth.cz/
. Toto chování lze změnit.
V hlavní složce založíte soubor vue.config.js
ve kterém nastavíte následující:
Pokud používáte vue-router
a máte nastavený jiný mód než hash
, je
nutné nastavit správně server, aby Vaše požadavky uměl zpracovat.
Mód history
je modernější a lepší pro SEO. Na mém hostingu či na GitHub Pages to
nelze nastavit.
Počítání měny v Klikačce
hhhhhhh.ppppppp.sssssss
h
: BASE64 hlavička (headers)p
: BASE64 tělo (payload)s
: podpis h
a p
Když je hlavička v BASE64, jaký formát uvnitř používá pro reprezentaci dat?
Typ JWT, šifrování a tělo je vždy veřejné. Má to nějaké nevýhody? Co výhody?
Jaké informace v sobě uchovává JWT token používaný na portálu?
JWT si server pro jednotlivé uživatele neukládá! Proč?
Jaké výhody má JWT?
Jaké problémy má JWT?
iat
— issued atexp
— expiration datejsonwebtoken
require("jsonwebtoken").verify(token, key)
require("jsonwebtoken").sign(data, key)
JWT používá Morsmordre pro přihlášení uživatele.
Velmi podobně funguje například OAuth 2.0, který je standardem a povíme si o něm později.
Co je to Framework?
Znáte nějaký CSS framework?
K čemu se frameworky nehodí?
Pro Vue existuje nespočet frameworků, pro Material Design existuje Vuetify a Quasar.
Nalezněte nějaké frameworky pro Vue. Najděte nějaký, který se Vám designově libí. Podívejte se, jak se instaluje a jak se například používají komponenty.
K čemu bychom potřebovali zvuk na webu?
audio
controls
, muted
, autoplay
, loop
pause
, play
, ended
, seeked
load
, play
, pause
, canPlayType
Zvuk může být otravný, co bychom měli dělat, aby byli uživatelé spokojeni?
Můžeme audio
stylovat pomocí CSS?
Lze přehrát zvuk jen pomocí JS?
Velmi podobně funguje i video (video
), které si však neukážeme.
Stejně jako obrázky, písma a barvy, ovlivnují chování uživatele i videa a hudba.
K čemu animace používáme na webových stránkách?
Jaké znáte přechodové funkce? K čemu slouží? Co je to interpolace?
Jak funguje SVG? Co je uvnitř SVG?
Najděte nějaký SVG soubor a podívejte se na jeho obsah. Poté se podívejte, zda a případně jak lze SVG animovat.
SVG, malé)
Proč vůbec něco takového vzniklo?
+--------+ +---------------+ | |--(A)- Autorizační požadavek ->| Majitel | | | | prostředku | | |<-(B)- Autorizační povolenka --| | | | +---------------+ | | | | +---------------+ | |--(C)- Autorizační povolenka ->| Autorizační | | Klient | | server | | |<-(D)--- Přístupový token -----| | | | +---------------+ | | | | +---------------+ | |--(E)--- Přístupový token ---->| Server | | | | prostředků | | |<-(F)------- Prostředek -------| | +--------+ +---------------+
Jaké parametry půjdou s požadavkem 1.?
Kolik se může využít refresh token? Kolikrát by to bylo bezpečné?
Můžeme pomocí OAuth2 udělat pouze webovou aplikaci (bez serveru, např. ve Vue), která bude komunikovat s Google API po přihlášení uživatelem?
Jaké jsou výhody a nevýhody OAuth2?