- var => NIE BENUTZEN
- const => konstant bleibende Variablen
- let => veränderbare Variablen
Item adden:
var myArray = [ "string1", "string2" ];
myArray.push("string3");
// Ausgabe: [ "string1", "string2", "string3" ]
Standalone-Anwendungen
- ... auf einem einzelnen Gerät, kein Internet nötig
- Client-Server-Anwendungen
- ... Client fragt an, Server antwortet.
Peer-to-Peer-Anwendungen
- Alle Teilnehmer gleichberechtigt
- Clients miteinander
Beispiele:
- Corona-App (leider)
- Tor-Browser
- Information
- Successs
- Redirection
- Error responses
Rest Representational State Transfer ist ein Entwurfsmuster für HTTP-Schnittstellen.
CRUD
- Create
- Read
- Update
- Delete
JSON
- serialisiertes JavaScript Objekt.
- Gibt nicht viele Alternativen
- Datenaustausch RestAPIs
- Einfaches Daten-Format
- Sprachen-Unabhängig (überall unterstützt)
Payload und Parameter
Wie senden Clients Daten an Servers?
https://www.zli.ch/kurse/2?key=value&key2=value2#anchor
- "https" => Protokoll
- "www.zli.ch" => Host
...
=> spread
map
=>
filter
=> wendet ein Query an, bei false wird Element ausgelassen
- http: 80
- https: 443
Dokus für RestAPIs
Doku-Hilfen:
- OpenAPI
- Swagger (Spotify benutzt das)
- GraphQL (selbst-dokumentierend)
- Slidev (Code präsentieren)
- revealjs (Code/sonstiges präsentieren)
- remotion (Videos mit React erstellen)
Wieso?
- Schnell die ganze Funktionalität einer App geprüft
- Unbequem ohne Tests (weniger fehleranfällig)
Was für Tests gibt es?
- e2e-Tests (end to end) / Integrations-Tests
- Blackbox von aussen
- Unit-Test
- Im Code, whitebox
Base 64 ist eine Art, Binärdaten in Text umzuwandeln.
- atob() -> "from a to b"
- Base64 String zu Binary
- btoa() -> from b to a
- Binary zu Base64 String