Lösungen Übungsaufgabe 6

a) Was ist eine REST API? Beschreibe in eigenen Worten und nenne mindestens zwei Anwendungsbeispiele von REST.

Der Begriff REST API stammt aus den Englischen und bedeutet Representational State Transfer Application Programming Interface zu Deutsch Repräsentativer Zustand Wechsel Anwendungsprogrammierschnittstelle. Mit dieser API wird es möglich Daten und Informationen über ein Netzwerk mit Client und Server austauschen. Über ein Interface wird auch z.B. das Übermitteln oder Anfordern von Daten an dem Server ermöglicht. [1]

Anwendungsbeispiele: OpenWeather-API, WordPress REST-API.

b) Benenne und beschreibe drei Eigenschaften der REST Architektur.[2]

Client-Server-Modell: In diesem Modell wir der Client vom Server getrennt damit eine leichtere Portierung auf andere Plattformen zu ermöglichen auch ist es so durch möglich das der Client und Server unabhängig voneinander Änderung an den Komponenten vornehmen können.[2]

Schichtsystem: Hierbei wird in mehren Schichten (Server) die Aufgaben wie das Caching oder Load Balancing auf mehren Servern verteilt. Damit erhält das REST API mehr Sicherheit da man bei einem Angriff nur einzelne Schichten der Architektur angreifen kann.[2]

Code-on-demand: Ist eine optionale Bedingung, die einzelne Code Fragmente vom Server an den Client verschickt.[2]

c) Beschreibe die HTTP-Methoden GET, POST, PUT, PATCH und DELETE mit eigenen Worten.

GET: Es werden Daten vom Server angefordert[1]

POST: Es werden Daten an den Server gesendet[1]

PUT: Ersetzt vollständig vorhanden Dateien auf dem Server[1]

PATCH: Ändert bzw. aktualisiert die vorhandenen Dateien auf dem Server[1]

DELETE: Löscht die Datei im Server

d) Jede Anfrage und Antwort setzt sich aus einem Header und einem Body zusammen. In der folgenden Abbildung ist die Antwort eines GET-Requests dargestellt:

Welche Informationen können dem Header entnommen werden?

Es werden Daten von der Seite der Uni Oldenburg gefordert die den Namen beep mit der Ressource Test enthalten. Auch findet man den Parameter -X in der Abfrage was für eine benutzerdefinierte Anforderung steht. Das bedeutet das selbst erstellte Metadaten ausgetauscht werden sollen [3]. Auch ist mit dem Code 200 ersichtlich das die Anfrage funktioniert hat.

e) In der obigen Anfrage hat anscheinend alles funktioniert.

I. Angekommen der HTTP-Statuscode wäre nicht 200, sondern 4xx. Begründe, wo du mit der Fehlersuche beginnen würdest.

Erst sollte man kontrollieren, ob die Parameter stimmen, anschließend muss man schauen, ob die http-Methode GET genutzt wurde. Anschließend sollte kontrolliert werden, ob die Ressource stimmt oder ob Anführungszeichen am Anfang und Ende von diesem gesetzt wurden. Danach sollte die Anfrage wieder Funktionieren.

II. Wie ist ein HTTP-Statuscode 5xx zu deuten?

Mit 5xx soll man wissen das es sich um Serverfehler handelt und somit der Server die eingehende Anfrage nicht bearbeiten kann.[3]

f) cURL ist ein Kommandozeilenprogramm zum Übertragen von Daten innerhalb von Rechnernetzen und sollte auf allen gängigen Betriebssystemen bereits vorinstalliert sein. Öffne das Terminal und lege mit Hilfe von cURL eine neue Ressource auf http://rest.iot.informatik.uni-oldenburg.de/api an. Nutze dafür den folgenden Befehl und passe die markierten Stellen für dich an.

curl -X POST -H “Content-Type: text/plain” -d “<DEIN PAYLOAD>” http://rest.iot.informatik.uni-oldenburg.de/api/<DEIN NAME>/<DEINE RESSOURCE>

Beschreibe welche Funktion die Parameter X, H und d im Befehl haben. Bestätige mit einem anschließenden GET-Request auf der eben erstellen Ressource, dass das Ablegen der Daten erfolgreich war.

Abbildung 1 Anlegen einer neuen Ressource und GET-Request

X: Ermöglicht eine benutzerdefinierte Anforderung, mit der man mit dem Server Kommunizieren kann.[4]

H: Damit kann man einen Extra header Nutzen. [4]

d: Ermöglicht das Senden einer POST-Anfrage an den http-Server. [4]

Quellen

[1]https://www.cloudcomputing-insider.de/was-ist-eine-rest-api-a-611116/

[2]https://www.talend.com/de/resources/was-ist-rest-api/

[3]https://entwickler.de/online/web/restful-api-design-intro-579826380.html

[4] https://curl.se/docs/manpage.html#-d

Ein Gedanke zu „Lösungen Übungsaufgabe 6

  1. Hi Daniel,
    anbei die Bewertung zum sechsten Übungszettel:

    Aufgabe 1
    a) (4/4)
    b) (3/3)
    c) (2,5/2,5)
    d) (1,5/4)
    Es fehlen noch weitere im Header enthaltene Informationen, z.B. das verwendete Protokoll (http) oder die Art der Verbindung (keep-alive) etc.
    e,I) (1/1)
    Also handelt es sich bei einem 4xx Fehler also um ein Client-seitiges Problem.
    e,II) (1/1)
    f) (4/4,5)
    Der Parameter H steht für den Content-Type und d für den Payload.

    Aufgabe 2
    – Lerntagebuch (10/10)

    Insgesamt 27 Punkte (90%)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert