es gibt verschiedene APIs
XMLHttpRequest API (auch bekannt unter AJAX) Client to Server Fetch API Client to Server Websockets Peer to Peer
Clients to Server- Nur der Browser kann requests senden Peer to Peer. Browser und Backend gehen in beide Richtungen
ist eventbasiert weit verbreitet für das Laden von Daten
Fetch API: ist promisebasiert aktuell das modernste. Wird genutzt.
Kommunikation zwischen Client und Server
HTTP antwortet unter anderem mit Statuscodes. i d r 3 stellig 1xx Information 2xx Successfull operation 3xx REdirect 4xx Client Error 5xx Server Error
promises sollen dafür sorgen, dass man den Zeitraum zwischen Anfrage und Antwort überdeckt.
A promise Pending --> Noch nicht weiter gemacht. in der warteschlange fulfilled --> erfolgreich durchgeführt rejected --> hat nicht geklappt
fetch methode gibt automatisch ein promise aus.
um die Ergebnisse dann aufzurufen, wenn die Daten da sind muss die json Methode aufgerufen werden
oder hier vollständig: Erst Laden und dann Daten abrufen:
wir wollen eine API laufen lassen.
eine laufzeitumgebung. Die uns erlaubt JS außerhalb des Browsers zu nutzen.
node.filename.js
um es zu starten.
zweite Funktion von node: man kann javascript in node ausführen lassen.
LTS Version von Node benutzen
node hat eingebaute features und außerdem externe.
man kann über node.js kommunizieren mit anderen PCs, Sprachen, Computern etc...
node js.
node --version
nvm use --lts
wechselt auf die lts Version
Node Package Manager
npmjs.org registry. Dort sind alle Pakete veröffentlicht
Open Source heißt nciht dass man es immer ohne Kosten nutzen kann -> bspw. haben diese teilweise Fehler teilweise leben viele Open Source Projekte von Spenden.
Lizenzen bei Open Source --> Author should get credit. Vor allem Unternehmen müssen das machen.
Comparison of licences
Guide to open source licenses
in der Datei package.json wird gespeichert, welche Pakete wir benutzen.
nur diese Datei packen wir in mein Repository. Also nur die Info was wir nutzen nicht den Code selbst mit in Git commiten
npm init
damit können wir unser Repository um ein Element aus der Bibliothek erweitern.
oder
npm init --yes
Standard setup. man wird ncihts gefragt. eine leere package.json wird angelegt
zum Hinzufügen des packages: npm install
das Packet wird zu dependencie
dargestellt wird dies natürlich in package.json
die node packages liegen in node_modules
wir müssen diesen ordner für git ignorieren. .gitignore
. da ja nur unser eigener Code in Git landen soll
aber wichtig: package.json gehört in git
wenn jemand dann später mein Projekt nutzen will muss er es klonen und npm install
befehlen. DAnn werden automatisch alle packages aus der package JSON installiert.
npm scripts sind Befehle die man in der package json hinterlegen kann.
im ordner
touch.gitignore
und dann in der Datei
/node_modules/
Endpoints points sind im Grunde genommen URLs
HTTP Methoden
GET Read Data POST creates Data PUT Update Data Delete delete Data
Get /todos/ --> gibt todos als JSON an Get/todos/1 --> gibt id 1 zurück
Post erstellt einen eintrag im Backend.
Put kann Daten im Backed updaten Das Backend gibt die Daten die erstellt wurden immer nochmal zurück
git todo aoi klonen in eine repository von mir im Ordner npm install --> um open source zu laden npm run start
dann läuft diese Api auf meinem Rechner. Konsole muss dafür offen sein Stoppen mit Ctrl + C oder schließen http://localhost:4730
postman wird genutzt um mit API zu interagieren.
wenn etwas schiefgeht und man es resetten will. Stop API Ctrl + C
rm db.json
PUT mit Fetch:
Delete mit Fetch