From 20691f5d4fb560a53fa3317ac13ef5eeee2f6505 Mon Sep 17 00:00:00 2001 From: Oliver Stolle 3024383 <3024383@stud.hs-mannheim.de> Date: Mon, 20 Apr 2026 22:24:58 +0000 Subject: [PATCH] Added Solutions for exercises 1-5 --- web/05/eigene_loesungen/Antwort_5_Ubeung.json | 110 +++++++++++++++ web/05/eigene_loesungen/Antworten_1_Uebung.md | 25 ++++ web/05/eigene_loesungen/Antworten_2_Ubeung.md | 14 ++ web/05/eigene_loesungen/Antworten_3_Ubeung.md | 126 ++++++++++++++++++ web/05/eigene_loesungen/Antworten_4_Ubeung.md | 102 ++++++++++++++ 5 files changed, 377 insertions(+) create mode 100644 web/05/eigene_loesungen/Antwort_5_Ubeung.json create mode 100644 web/05/eigene_loesungen/Antworten_1_Uebung.md create mode 100644 web/05/eigene_loesungen/Antworten_2_Ubeung.md create mode 100644 web/05/eigene_loesungen/Antworten_3_Ubeung.md create mode 100644 web/05/eigene_loesungen/Antworten_4_Ubeung.md diff --git a/web/05/eigene_loesungen/Antwort_5_Ubeung.json b/web/05/eigene_loesungen/Antwort_5_Ubeung.json new file mode 100644 index 0000000..5f6ae13 --- /dev/null +++ b/web/05/eigene_loesungen/Antwort_5_Ubeung.json @@ -0,0 +1,110 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Simple Greeting API", + "version": "1.0.0" + }, + "servers": [ + { + "url": "http://localhost:8080" + } + ], + "paths": { + "/hello": { + "get": { + "summary": "Returns a greeting", + "parameters": [ + { + "name": "name", + "in":"query", + "required": true, + "description": "Name Parameter", + "schema":{ + "type": "string" + }, + "example": "Mr. X" + } + ], + "responses": { + "200": { + "description": "Greeting response in plain text.", + "content": { + "text/plain": { + "schema": { + "type": "string" + }, + "example": "Hello!" + } + } + } + } + }, + "post": { + "summary": "Returns a plain text greeting", + "requestBody":{ + "required": true, + "content": { + "text/plain":{ + "schema":{ + "type": "string", + "example": "YEET" + } + } + } + }, + "responses": { + "200": { + "description": "Plain text greeting response", + "content": { + "text/plain": { + "schema": { + "type": "string" + }, + "example": "Hello!" + } + } + } + } + } + }, + "/hello-json":{ + "post":{ + "summary": "Ein hello/json greeting", + "requestBody":{ + "required": true, + "content": { + "application/json":{ + "schema":{ + "type": "object", + "properties": { + "name":{ + "type":"string", + "example":"Alice" + }, + "age":{ + "type":"integer", + "example":"23" + } + }, + "required": ["name", "age"] + } + } + } + }, + "responses": { + "200": { + "description": "Json text greeting response", + "content": { + "text/plain": { + "schema": { + "type": "string" + }, + "example": "Daten erhalten!" + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/web/05/eigene_loesungen/Antworten_1_Uebung.md b/web/05/eigene_loesungen/Antworten_1_Uebung.md new file mode 100644 index 0000000..dbde19c --- /dev/null +++ b/web/05/eigene_loesungen/Antworten_1_Uebung.md @@ -0,0 +1,25 @@ +## Frage 1: + Frage: Welchen Usernamen benutzt Ervin Howell? + + Antwort: Antonette +## Frage 2: + Frage: Wieviele Posts wurden von dem/der Nutzer:in mit der User-ID 6 gespeichert? + + Antwort: 10 Stück +## Frage 3: + Frage: Wie lautet der Titel des Posts mit der ID 1? + + Antwort: "sunt aut facere repellat provident occaecati excepturi optio reprehenderit" +## Frage 4: + Frage: Wieviele Kommentare hat der Post mit der ID 1 erhalten? + + Antwort: 5 Kommentare +## Frage 5: + Frage: Gibt es andere Posts (außer PostId 1), die Kommentare erhalten haben? (Ja/Nein) + + Antwort: JA (insgesammt 500 Kommentare) +## Frage 6: + Frage: Wie finde ich alle Posts, die von dem/der Nutzer:in mit der User-ID 2 gespeichert wurden? + + Antwort: Mit dem Befehl: "curl https://jsonplaceholder.typicode.com/posts/2/comments" + (Es sind 5 Kommentare) diff --git a/web/05/eigene_loesungen/Antworten_2_Ubeung.md b/web/05/eigene_loesungen/Antworten_2_Ubeung.md new file mode 100644 index 0000000..c31d5ef --- /dev/null +++ b/web/05/eigene_loesungen/Antworten_2_Ubeung.md @@ -0,0 +1,14 @@ +## Arbeitsschritt 1: + Arbeitsschritt: Finden Sie die ID von Professor Firenze heraus. Welchen curl-Befehl haben Sie verwendet? + + Antwort: Die ID von Firenze ist "68eb4a0b-6c49-44e9-aec8-5af947d22141" + Der ensprechende Befehl ist: "curl -s https://hp-api.onrender.com/api/characters/staff" + + +## Arbeitsschritt 2&3: + + Arbeitsschritt: Nutzen Sie diese ID, um ausschließlich die Informationen zu Professor Firenze zu finden. Welchen curl-Befehl haben Sie verwendet? + + Antwort: "curl -s https://hp-api.onrender.com/api/character/68eb4a0b-6c49-44e9-aec8-5af947d22141" + Er hat die Haarfarbe blond. + diff --git a/web/05/eigene_loesungen/Antworten_3_Ubeung.md b/web/05/eigene_loesungen/Antworten_3_Ubeung.md new file mode 100644 index 0000000..a6b48cb --- /dev/null +++ b/web/05/eigene_loesungen/Antworten_3_Ubeung.md @@ -0,0 +1,126 @@ +## Arbeitsschritt 1: + Arbeitsschritt iv: + Formulieren Sie einen eigenen POST-Request für: + Name: Sonnenhut + Botanischer Name: Echinacea purpurea + Standort: Sonnig + Besonderheiten: Heilpflanze, zieht Schmetterlinge an, robust + + Antwort: + curl -X POST https://crudcrud.com/api/${API_ID}/staudenpflanzen \ + --header 'Content-Type: application/json' \ + --data '{"name": "Sonnenhut", "botanischer_name": "Echinacea purpurea", "standort": "Sonnig", "besonderheiten": "Heilpflanze, zieht Schmetterlinge an, robust"}' + + + Arbeitsschritt v: + Formulieren Sie einen eigenen POST-Request für: + Name: Tränendes Herz + Botanischer Name: Lamprocapnos spectabilis + Standort: Halbschatten + Besonderheiten: Herzförmige Blüten, romantisch, giftig + + Antwort: + Antwort: + curl -X POST https://crudcrud.com/api/${API_ID}/staudenpflanzen \ + --header 'Content-Type: application/json' \ + --data '{"name": "Tränendes Herz", "botanischer_name": "Lamprocapnos spectabilis", "standort": "Halbschatten", "besonderheiten": "Herzförmige Blüten, romantisch, giftig"}' + +## Arbeitsschritt 2: + + Arbeitsschritt i: + curl https://crudcrud.com/api/${API_ID}/staudenpflanzen + + Antwort: + [{"_id":"69e663a4ee62c203e8570037","name":"Lavendel","botanischer_name":"Lavandula angustifolia","standort":"Sonnig, trocken","besonderheiten":"Duftend, bienenfreundlich, winterhart"},{"_id":"69e663c0ee62c203e8570038","name":"Lavendel","botanischer_name":"Lavandula angustifolia","standort":"Sonnig, trocken","besonderheiten":"Duftend, bienenfreundlich, winterhart"},{"_id":"69e66501ee62c203e8570039","name":"Tränendes Herz","botanischer_name":"Lamprocapnos spectabilis","standort":"Halbschatten","besonderheiten":"Herzförmige Blüten, romantisch, giftig"},{"_id":"69e6651cee62c203e857003a","name":"Sonnenhut","botanischer_name":"Echinacea purpurea","standort":"Sonnig","besonderheiten":"Heilpflanze, zieht Schmetterlinge an, robust"}] + + + Arbeitsschritt ii: + Finden Sie die IDs der Funkie, des Sonnenhuts und der Pfingstrose heraus und notieren Sie sich diese. + + Antwort: + Funkie: "69e666dbee62c203e857003c" + Sonnenhut: "69e6651cee62c203e857003a" + Pfingstrose: "69e666e9ee62c203e857003d" + +## Arbeitsschritt 3: + + Arbeitsschritt i: + curl -X PUT https://crudcrud.com/api/${API_ID}/staudenpflanzen/ \ + --header 'Content-Type: application/json' \ + --data '{"name": "Sonnenhut", "botanischer_name": "Echinacea purpurea", "standort": "Sonnig", "besonderheiten": "Heilpflanze, zieht Schmetterlinge, schneckenanfällig"}' + + Antwort: + curl -X PUT https://crudcrud.com/api/${API_ID}/staudenpflanzen/69e6651cee62c203e857003a \ + --header 'Content-Type: application/json' \ + --data '{"name": "Sonnenhut", "botanischer_name": "Echinacea purpurea", "standort": "Sonnig", "besonderheiten": "Heilpflanze, zieht Schmetterlinge, schneckenanfällig"}' + + Antwort des Servers mit "curl https://crudcrud.com/api/${API_ID}/staudenpflanzen": + ... + {"_id":"69e6651cee62c203e857003a","name":"Sonnenhut","botanischer_name":"Echinacea purpurea","standort":"Sonnig","besonderheiten":"Heilpflanze, zieht Schmetterlinge, schneckenanfällig"} + ... + + + Arbeitsschritt ii: + Formulieren Sie einen eigenen PUT-Request für die Funkie und ändern Sie die Besonderheiten zu "Dekoratives Laub, schneckenanfällig, robust". + + Antwort: + curl -X PUT https://crudcrud.com/api/${API_ID}/staudenpflanzen/69e666dbee62c203e857003c \ + --header 'Content-Type: application/json' \ + --data '{"name":"Funkie","botanischer_name":"Hosta","standort":"Halbschatten bis Schatten","besonderheiten":"Dekoratives Laub, schneckenanfällig, robust"}' + + Antwort des Servers mit "curl https://crudcrud.com/api/${API_ID}/staudenpflanzen": + ... + {"_id":"69e666dbee62c203e857003c","name":"Funkie","botanischer_name":"Hosta","standort":"Halbschatten bis Schatten","besonderheiten":"Dekoratives Laub, schneckenanfällig, robust"} + ... + +## Arbeitsschritt 4: + + Arbeitsschritt i: + curl -X DELETE https://crudcrud.com/api/${API_ID}/staudenpflanzen/69e666e9ee62c203e857003d + + +## Arbeitsschritt 5: + + Arbeitsschritt: + curl https://crudcrud.com/api/${API_ID}/staudenpflanzen | jq + + Antwort: + [ + { + "_id":"69e663a4ee62c203e8570037", + "name":"Lavendel", + "botanischer_name":"Lavandula angustifolia", + "standort":"Sonnig, trocken", + "besonderheiten":"Duftend, bienenfreundlich, winterhart" + }, + { + "_id":"69e663c0ee62c203e8570038", + "name":"Lavendel", + "botanischer_name":"Lavandula angustifolia", + "standort":"Sonnig, trocken", + "besonderheiten":"Duftend, bienenfreundlich, winterhart" + }, + { + "_id":"69e66501ee62c203e8570039", + "name":"Tränendes Herz", + "botanischer_name":"Lamprocapnos spectabilis", + "standort":"Halbschatten", + "besonderheiten":"Herzförmige Blüten, romantisch, giftig" + }, + { + "_id":"69e6651cee62c203e857003a", + "name":"Sonnenhut", + "botanischer_name":"Echinacea purpurea", + "standort":"Sonnig", + "besonderheiten":"Heilpflanze, zieht Schmetterlinge, schneckenanfällig" + }, + { + "_id":"69e666dbee62c203e857003c", + "name":"Funkie", + "botanischer_name":"Hosta", + "standort":"Halbschatten bis Schatten", + "besonderheiten":"Dekoratives Laub, schneckenanfällig, robust" + } + ] + + diff --git a/web/05/eigene_loesungen/Antworten_4_Ubeung.md b/web/05/eigene_loesungen/Antworten_4_Ubeung.md new file mode 100644 index 0000000..c5d0fab --- /dev/null +++ b/web/05/eigene_loesungen/Antworten_4_Ubeung.md @@ -0,0 +1,102 @@ +## Arbeitsschritt 1: + Arbeitsschritt: + Erstelle ein JSON-Objekt mit Informationen über eine Person: + Name: Alex + Alter: 30 + Wohnort: Berlin + + Antwort: + { + "person": { + "name": "Alex", + "alter": "30", + "wohnort": "Berlin" + } + } + + +## Arbeitsschritt 2: + + Arbeitsschritt: + Erstelle ein JSON-Objekt zu einem Produkt: + Produktname: Kopfhörer + Preis: 89.99 + Verfügbarkeit: Ja + Farben: Schwarz und Weiß (als Liste) + + Antwort: + { + "produkt":{ + "produktname": "Kopfhöhrer", + "preis": "89.99", + "verfügbarkeit": "ja", + "farben":[ + "schwarz", + "weiss" + ] + } + } + + +## Arbeitsschritt 3: + + Arbeitsschritt: + Erstelle ein JSON-Objekt zu einem Benutzer inklusive Adresse: + Benutzername: maria1999 + Passwort: abc123 + Rolle: Admin + Adresse: Bauernring 15 (Straße), Weilbach (Stadt) und 12345 (Postleitzahl) (als verschachteltes Objekt) + + Antwort: + { + "benutzer":{ + "benutzername":"maria1999", + "passwort":"abc123", + "rolle":"admin", + "addresse":{ + "straße": "Bauernring 15", + "stadt": "Weilbach", + "postleitzahl": "12345" + } + } + } + +## Arbeitsschritt 4: + + Arbeitsschritt: + Erstelle ein Array mit zwei Aufgabenobjekten. Jede Aufgabe hat einen Titel und einen erledigt-Status (true/false) + + Antwort: + { + "aufgaben": [ + "aufgabe":{ + "titel": "JSON Lernen", + "erledigt":"true" + }, + "aufgabe":{ + "titel": "SWAGGER Lernen", + "erledigt":"false" + } + ] + } + + +## Arbeitsschritt 5: + + Arbeitsschritt: + Erstelle ein JSON-Objekt für einen Blogeintrag mit folgendem Aufbau: + Titel, Autor, Inhalt des Beitrags + Ein Kommentar als verschachteltes Objekt mit Autor und Text + + Antwort: + { + "blogeintrag":{ + "titel": "Ein Test Titel", + "autor": "Mr X.", + "inhalt": "Lorem ipsum ...", + "kommentar": { + "autor": "Kommentator von dem Blogeintrag", + "text": "Lorem ipsum..." + } + } + } \ No newline at end of file