
Tutorium 11
Presentation
•
Computers
•
University
•
Hard
Nastassia Lukyanovich
Used 15+ times
FREE Resource
16 Slides • 8 Questions
1
Tutorium 11
2
REST
Was ist REST?
3
REST
REST: Paradigma für die Gestaltung von Web-basierten Programmierschnittstellen (Application Programming Interfaces, APIs), vornehmlich für die Maschine-zu-Maschine-Kommunikation
RESTful: Webdienste, die dem REST-Paradigma folgen
Ressource: jede Art von kohärenter und sinnvoller Information (z.B. eine Liste oder Elemente einer Liste), die über eine Adresse (URI) zur Verfügung gestellt werden kann.
Repräsentation: Darstellungsform einer Ressource (z.B. HTML, XML oder JSON)
Verben: RESTful Services definieren keine eigenen Methoden und Operationen in ihrer API, sondern verwenden die Methoden von HTTP
URI (Uniform Resource Identifier): Jede Ressource verfügt über eine eigene, dedizierte Adresse in Form eines Uniform Resource Identifiers (URI).
URI hat 2 Unterkategorien:
1. URN: Codiert den Namen einer Ressource, bsp: tel:+1-816-555-1212
2. URL: Codiert den Ort einer Ressource, bsp: http://www.tu-berlin.de/
4
Multiple Choice
HTTP steht für Hypertext Transport Protocol und wurde in den 90er- Jahren in Europa entwickelt.
Wahr
Falsch
5
Multiple Choice
TCP ist ein zustandsloses Protokoll, das vor allem auf Grund seiner Verlässlichkeit für die Übermittlung von Hypertexten gut geeignet ist.
Wahr
Falsch
6
Multiple Choice
Laut HTTP Spezifikation wird eine HTTP-Anfrage immer durch einen Client und eine HTTP-Antwort durch einen Server gesendet.
Wahr
Falsch
7
Multiple Choice
Ein Single-Thread-Server arbeitet ausschließlich synchron: Er nimmt HTTP-Anfragen entgegen, bearbeitet diese und versendet Antworten.
Wahr
Falsch
8
Multiple Choice
Die Antwort auf eine HTTP-OPTIONS Anfrage enthält das Header-Feld ‚Methods‘, in dem die vom Server unterstützten HTTP-Methoden aufgelistet werden.
Wahr
Falsch
9
11.1 Node.js: Grundlagen
Node module:
Modul | Beschreibung |
|---|---|
http | http module includes classes, methods and events to create Node.js http server. |
url | url module includes methods for URL resolution and parsing. |
querystring | includes methods to deal with querystring. |
Callback-Funktion Parameter:
1) req: empfangener http-request
2) res: zugehöriger response
Request. Events:
data: ausgelöst, sobald neue Daten geliefert werden
end: ausgelöst, sobald die Übermittlung sämtlicher Teile einer Anfrage abgeschlossen ist.
close: signalisiert, dass die TCP-Verbindung beendet wurde.
Response. Methods:
writeHead(): Header-Parameter, z.b. Statuscode.
write(): Daten in den Response-body schreiben.
end(): http-response abschließen und verschicken. Daten in den Response-body schreiben (write ist dann nicht nötig)
Node modul importieren:
Server erstellen mithilfe http-objekts:
10
11.1 Node.js: Grundlagen
Request. Events:
data: ausgelöst, sobald neue Daten geliefert werden
end: ausgelöst, sobald die Übermittlung sämtlicher Teile einer Anfrage abgeschlossen ist.
close: signalisiert, dass die TCP-Verbindung beendet wurde. !Beachte!
end und close können nur ein mal pro anfrage ausgelöst werden. Tritt close vor end auf, ist die Übertragung unvollständig.
Response. Methods:
writeHead(): Header-Parameter, z.b. Statuscode.
write(): Daten in den Response-body schreiben.
end(): http-response abschließen und verschicken. Daten in den Response-body schreiben (write ist dann nicht nötig)
11
Fill in the Blanks
Type answer...
12
Open Ended
Wie importiert man ein Modul?
13
Fill in the Blanks
Type answer...
14
11.1 Node.js: Einführung
Letzte Woche haben wir besprochen, wie man mittels HTTP mit einem lokal laufenden Webserver kommunizieren kann. Nun wollen wir diesen Ansatz erweitern, indem wir unseren eigenen Server mit Node.js implementieren.
In der Vorgabe finden Sie in der Datei server.js einen teilweise implementieren Node.js Server. Machen Sie sich mit seiner Funktion vertraut und ergänzen Sie ihn anschließend um folgende Funktionalitäten:
1) GET
2) POST
3) PUT
4) DELETE
5) default
15
11.1 Node.js: Einführung
GET:
Mittels der GET-Methode können Eintrage ausgelesen werden.
1) Wird eine konkrete id als Query-Parameter übergeben, so wird nur der entsprechende Eintrag zurückgegeben.
2) Ansonsten werden alle Einträge als Array zurückgegeben.
Schritte:
1) Wurde keine id als query parameter angegeben, liste die verfügbaren ids auf.
2) Wenn der angegebene id in der Datenbank enthalten ist, sende den Eintrag zurück.
3) In anderen Fällen sende Statuscode 404 (Not found).
16
11.1 Node.js: Einführung
PUT:
Mittels der PUT-Methode können Einträge modifiziert werden.
Dazu muss im Request- Body die id des zu modifizierenden Eintrags sowie die neuen Werte für modul, prof und ects im x-www-urlencoded Format angeben werden.
Bei Erfolg wird Statuscode 200 zurückgegeben.
Existiert kein Eintrag mit der angegebenen id, wird Statuscode 404 zurückgegeben.
Falls in der Anfrage kein modul, prof und ects übergeben wurde, wird Statuscode 400 zurückgegeben
Schritte:
1) Lies den request-body stückweise, setze alle Teile zusammen.
2) Wenn der ganze request-body gelesen wurde, fange mit der Implementation an.
3) Ist der eingelesene Body leer? Falls ja, schicke Statuscode 400 und ende den response mit dem Message "No data transfered". Falls nein, weitere Schritte.
4) Parse body in einen Objekt (Jetzt es ist ein QueryString).
5) Ist id der zu des zu modifizierenden Eintrags gegeben? Falls nein, schicke Statuscode 404 und schließe response mit dem Message "No id transfered" ab. Falls ja, weitere Schritte.
17
11.1 Node.js: Einführung
PUT:
Mittels der PUT-Methode können Einträge modifiziert werden.
Dazu muss im Request- Body die id des zu modifizierenden Eintrags sowie die neuen Werte für modul, prof und ects im x-www-urlencoded Format angeben werden.
Bei Erfolg wird Statuscode 200 zurückgegeben.
Existiert kein Eintrag mit der angegebenen id, wird Statuscode 404 zurückgegeben.
Falls in der Anfrage kein modul, prof und ects übergeben wurde, wird Statuscode 400 zurückgegeben
Schritte:
6) Sind alle neuen Werte für modul, prof, ects da? Wenn nein, schicke Statuscode 400 und schließe response mit dem Message "Info is missing" ab. Falls ja, weitere Schritte.
7) Update den Eintrag unter id.
8) Schicke Statuscode 200.
9) Schließe den response mit dem Message
"Update unter id +Eintrag" ab.
10) BREAK nicht vergessen.
18
11.1 Node.js: Einführung
DELETE:
Mittels der DELETE-Methode wird der Eintrag mit der id gelöscht, die als Parameter der Anfrage übergeben wird.
Wird keine id angeben, wird kein Eintrag gelöscht und Statuscode 400 zurückgegeben.
Bei erfolgreicher Löschung wird Statuscode 200 zurückgegeben.
Schritte:
1) Gibt es eine id in dem Parameter? Falls nein, schicke Statuscode 400 und schließe response mit dem message
"ID is missing" ab.
2) Falls ja, lösche den Eintrag unter der id, schicke Statuscode 200 und schliße den response ab.
3) BREAK nicht vergessen.
19
11.1 Node.js: Einführung
default:
Für jede andere HTTP-Methode wird Statuscode 405 zurückgegeben.
Schritte:
1) Gibt es eine id in dem Parameter? Falls nein, schicke Statuscode 400 und schließe response mit dem message
"ID is missing" ab.
2) Falls ja, lösche den Eintrag unter der id, schicke Statuscode 200 und schliße den response ab.
3) BREAK nicht vergessen.
20
11.2 nginx
Richten Sie nun einen nginx-Webserver ein, der, genau wie in der Vorlesung vorgestellt, als Reverse Proxy für den zuvor implementierten Node.js-Anwendungsserver fungiert.
Idee der Aufgabe:
Client
Node.js Server
localhost: 3000
GET
{
id: 0,
id: 1
}
Client
Node.js Server
localhost: 3000
Config proxy to localhost: 3000
localhost: 8080
nginx Server
21
11.2 nginx
Installieren Sie dazu zunächst nginx auf Ihrem Gerät:
Windows
Laden Sie sich nginx Version 1.23.3 für Windows herunter: https://nginx.org/ download/nginx-1.23.3.zip
Entpacken Sie das heruntergeladene ZIP-Archiv in einen Ordner Ihrer Wahl.
Linux (Ubuntu)
1. Aktualisieren Sie ggf. das Verzeichnis Ihres Package Managers mit dem Befehl: apt-get update
2. Nutzen Sie apt-get, um nginx zu installieren: apt-get install nginx
MacOS
1. Installieren Sie ggf. Homebrew, indem Sie folgenden Befehl im Terminal eingeben:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. Nutzen Sie Homebrew, um nginx zu installieren, indem Sie folgenden Befehl im Terminal eingeben: brew install nginx
22
11.2 nginx
In Unix-basierten System, also Linux und MacOS, ist der Installationsordner von nginx unter dem Pfad
/usr/local/etc/nginx/ oder /opt/homebrew/etc/nginx/nginx.conf zu finden. Sie können nginx jedoch von überall in Ihrem System über das Terminal starten.
In Windows ist der Installationsorder der Ordner, in den Sie das ZIP-Archiv entpackt haben. Um nginx im Windows-Terminal ausführen zu können, müssen Sie sich im Installationsordner befinden.
Sie können nginx mittels folgender Befehle steuern:
nginx Server starten nginx
-s stop Server schnell beenden
nginx -s quit Server kontrolliert herunterfahren
nginx -s reload Serverkonfiguration neu laden
23
11.2 nginx
Die Konfiguration von nginx erfolgt mittels der im Installationsordner befindlichen nginx.conf Datei.
Um nginx wie gewünscht als Reverse Proxy für unseren Node.js-Anwendungsserver zu nutzen, muss diese Datei angepasst werden. Ersetzen Sie dazu in der Datei den vorgefertigten server-Block durch folgenden Code:
server {
listen 8080;
location / {
proxy_pass http://localhost:3000;
}
}
Tutorium 11
Show answer
Auto Play
Slide 1 / 24
SLIDE
Similar Resources on Wayground
19 questions
Lymphatic system
Presentation
•
Professional Development
20 questions
Hören - JAN
Presentation
•
KG - University
20 questions
Hören - Thomas
Presentation
•
KG - University
20 questions
Respiratory exam
Presentation
•
University
20 questions
Zahnmedizin für Maisarat
Presentation
•
KG
19 questions
Cardiovascular Conduction
Presentation
•
12th Grade
16 questions
Weihnachten - Beschreiben
Presentation
•
University
Popular Resources on Wayground
20 questions
STAAR Review Quiz #3
Quiz
•
8th Grade
20 questions
Equivalent Fractions
Quiz
•
3rd Grade
6 questions
Marshmallow Farm Quiz
Quiz
•
2nd - 5th Grade
20 questions
Main Idea and Details
Quiz
•
5th Grade
20 questions
Context Clues
Quiz
•
6th Grade
20 questions
Inferences
Quiz
•
4th Grade
19 questions
Classifying Quadrilaterals
Quiz
•
3rd Grade
12 questions
What makes Nebraska's government unique?
Quiz
•
4th - 5th Grade