{"id":23679,"date":"2022-08-31T15:28:05","date_gmt":"2022-08-31T13:28:05","guid":{"rendered":"https:\/\/blog.mi.hdm-stuttgart.de\/?p=23679"},"modified":"2023-06-18T17:27:43","modified_gmt":"2023-06-18T15:27:43","slug":"jobsuche-portal","status":"publish","type":"post","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/08\/31\/jobsuche-portal\/","title":{"rendered":"Jobsuche Portal"},"content":{"rendered":"\n<p>SS22 &#8211; Dev4Cloud Projekt &#8211; von Robin H\u00e4rle und Anton Gerdts<\/p>\n\n\n\n<ol class=\"has-medium-font-size wp-block-list\"><li>Ideenfindung<\/li><\/ol>\n\n\n\n<p>\u00a0\u00a0\u00a0 Zu Beginn der Ideenfindungsphase f\u00fcr unser Projekt sahen wir uns die verschiedenen Apis auf <a href=\"https:\/\/bund.dev\/\"><em>Bund.dev<\/em><\/a> an, um uns von der Thematik der verf\u00fcgbaren Daten inspirieren zu lassen. Wir entschieden uns ohne lange abzuw\u00e4gen daf\u00fcr ein Jobsuche-Portal mit der <a href=\"https:\/\/jobsuche.api.bund.dev\/\"><em>Jobsuche API<\/em><\/a> als Datenquelle zu kreieren, da der Inhalt unseres Projekts zweitrangig war und es uns mehr darum ging, technisch interessante Cloud-Dienste auszuprobieren. Als n\u00e4chstes erstellten wir eine entsprechende Liste von Features die wir in unserer App einbauen wollten und realistisch umgesetzt werden k\u00f6nnten: Neben der klassischen Suchfunktion f\u00fcr Jobs nach Parametern wie Ort, Besch\u00e4ftigungsart und Titel sollten sich User \u00fcber eine Single-Sign-On oder Email-Registrierung authentifizieren k\u00f6nnen. Als authentifizierter User sollte man auf der Detailansicht eines Job-Angebots eine Chat- und Bewertungsfunktion nutzen k\u00f6nnen, welche \u00fcber Websockets Echtzeit-Kommunikation mit anderen Usern auf derselben Seite erm\u00f6glichen sollten.<\/p>\n\n\n\n<p>Anschlie\u00dfend entschieden wir uns, unser Projekt in der AWS Cloud umzusetzen, da uns hierf\u00fcr bereits der AWS Cloud Foundations Videokurs zum Lernen zur Verf\u00fcgung gestellt worden war und AWS im Rahmen des Free Tier sehr umfangreiche Funktionen bietet.<\/p>\n\n\n\n<p>Das Backend bzw. die Cloud-Infrastruktur sollte \u00fcber Terraform deployed werden; bez\u00fcglich des Frontend-Frameworks entschieden wir uns f\u00fcr Vue, da Robin damit schon viel Erfahrung hatte. Au\u00dferdem wollten wir das Component basierte UI-Framework <a href=\"https:\/\/www.naiveui.com\/en-US\/os-theme\"><em>Naive UI<\/em><\/a> nutzen, um uns m\u00f6glichst wenig mit Design und mehr mit der Funktionalit\u00e4t und den Cloud-Diensten besch\u00e4ftigen zu k\u00f6nnen.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<ol start=\"2\" class=\"has-medium-font-size wp-block-list\"><li>Umsetzung<\/li><\/ol>\n\n\n\n<p>Zum Start der eigentlichen Umsetzung der oben beschriebenen Webanwendung hatte Robin bereits vorab Cloud-Funktionen in der IBM Cloud implementiert, welche das Aktualisieren von Tokens zur Authentifizierung f\u00fcr die <em>Jobsuche API <\/em>\u00fcbernahmen und somit einfache, direkte Abfragen der Job-Daten aus unserer App heraus erm\u00f6glichten.<\/p>\n\n\n\n<p>Die User Authentifizierung realisierten wir \u00fcber AWS Cognito. Wegen Zeitmangel war leider keine SSO-Authentifizierung mehr umsetzbar. Das Konfigurieren eines Cognito User-Pools funktionierte ohne Probleme, allerdings war die Integration dessen im Frontend schwieriger. Die Dokumentation des AWS SDK f\u00fcr JavaScript, dessen verschiedene Versionen und unterschiedliche Verwendung dieser sowie der Hinweis, dass man f\u00fcr die Authentifizierung \u00fcber User-Pools (anstatt Identity Pools) eine dedizierte JavaScript Library verwenden soll (<a href=\"https:\/\/www.npmjs.com\/package\/amazon-cognito-identity-js\"><em>amazon-cognito-identity-js<\/em><\/a>) waren un\u00fcbersichtlich und sehr knapp. Zus\u00e4tzlich war die API der erw\u00e4hnten JavaScript Library umst\u00e4ndlich designed (z.B. sind User-Daten nach Authentifizierung nicht direkt zugreifbar, sondern m\u00fcssen jedes mal \u00fcber eine Methode mit Callback f\u00fcr Success und Failure abgerufen werden). Aus diesem Grund implementierten wir eine Wrapper-Klasse, die f\u00fcr unseren Usecase eine optimierte API bereitstellte.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Die Live-Chat Funktion realisierten wir \u00fcber ein Zusammenspiel aus zwei Dynamo-DB Tabellen, drei Lambda Funktionen und einer Websocket API-Gateway Resource. Beim Aufruf einer Job-Detailansicht wird eine Verbindung mit dem Websocket Endpoint aufgebaut. In der \u201cConnections\u201d Dynamo-DB Tabelle wird die Connection-Id der Job-Id der aufgerufenen Detailansicht zugeordnet. Au\u00dferdem werden aus der \u201cComments\u201d Tabelle alle Kommentare des aktuellen Jobs abgerufen und an den Client geschickt. Postet dieser ein neues Kommentar wird dieses in die \u201cComments\u201d Tabelle gespeichert und an alle Connections, die in der\u201cConnections\u201d Tabelle der gleichen Job-Id zugeordnet sind, gebroadcastet Wird die Job-Detailansicht geschlossen wird auch aus der \u201cConnections\u201d Tabelle der Eintrag mit der Entsprechenden Connection-Id gel\u00f6scht.<\/p>\n\n\n\n<p>Hierbei stie\u00dfen wir auf zwei Probleme: Das erste bezog sich auf Terraform und zeigte, dass die Nutzung von Terraform nicht nur wie anfangs erwartet ein \u201cSegen\u201d wegen einfacherer Nachvollziehbarkeit und Reproduzierbarkeit der Infrastruktur in Code-Form ist, sondern auch Nachteile mit sich bringt: In vielen F\u00e4llen werden beim Erstellen von Cloud Ressourcen \u00fcber die AWS Management Console Parameter automatisch passend konfiguriert, z.B. bei der Integration von Lambda-Funktionen mit einer API-Gateway Route: hier werden unter anderem \u201cInvoke-Permissions\u201d der Lambda-Funktion automatisch gesetzt, d.h. die Lambda-Funktion wird so konfiguriert, dass sie vom API-Gateway getriggert werden darf. Diese und andere Attribute muss man beim Verwenden von Terraform selbst korrekt setzen, was nicht immer einfach ist, da die Dokumentation von Terraform bez\u00fcglich solcher \u201cDetail-Attribute\u201d sehr knapp ist.<\/p>\n\n\n\n<p>Das zweite Problem bestand darin, dass sich der gewohnte DevOps-Workflow nicht ohne weiteres mit der Entwicklung von Code f\u00fcr Serverless Cloud-Services wie Lambda-Funktionen vereinen l\u00e4sst.<\/p>\n\n\n\n<p>Anders als das Frontend einer Webanwendung konnten wir den Code einer Lambda Funktion nicht ohne weiteres in einer lokalen Testumgebung auf unseren Rechnern testen und die Zeit sich in entsprechende Tools wie z.B. das <a href=\"https:\/\/docs.aws.amazon.com\/serverless-application-model\/latest\/developerguide\/serverless-sam-reference.html#serverless-sam-cli\"><em>AWS SAM CLI<\/em><\/a> einzuarbeiten fehlte uns. In unserem Fall gen\u00fcgte es den Code zwar in einem Git Repository zu versionieren, allerdings \u00fcber die AWS Management Console zu testen und zu deployen. In Zukunft w\u00e4re es ideal f\u00fcr jegliche Serverless Services Testumgebungen f\u00fcr Entwicklungsrechner und Runner der Git Testing-Pipelines zu erstellen. Damit k\u00f6nnte Anwendungscode den \u00fcblichen DevOps Lifecycle durchlaufen und m\u00fcsste nicht in der Cloud selbst getestet werden, wodurch vermieden werden k\u00f6nnte, dass Fehler bei der Entwicklung (z.B. fehlerhafte Bedienung der AWS Management Console) Cloud Ressourcen zum Absturz o.\u00e4. bringen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SS22 &#8211; Dev4Cloud Projekt &#8211; von Robin H\u00e4rle und Anton Gerdts Ideenfindung \u00a0\u00a0\u00a0 Zu Beginn der Ideenfindungsphase f\u00fcr unser Projekt sahen wir uns die verschiedenen Apis auf Bund.dev an, um uns von der Thematik der verf\u00fcgbaren Daten inspirieren zu lassen. Wir entschieden uns ohne lange abzuw\u00e4gen daf\u00fcr ein Jobsuche-Portal mit der Jobsuche API als Datenquelle [&hellip;]<\/p>\n","protected":false},"author":1096,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1,656,649,262,650,22],"tags":[],"ppma_author":[880],"class_list":["post-23679","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-databases","category-interactive-media","category-rich-media-systems","category-scalable-systems","category-student-projects"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":12032,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2020\/09\/30\/admin-panel-web-app-in-der-aws-cloud\/","url_meta":{"origin":23679,"position":0},"title":"Admin Panel (Web App) in der AWS Cloud","author":"ss447","date":"30. September 2020","format":false,"excerpt":"1. Einleitung Im Rahmen der Vorlesung \u201eSoftware Development for Cloud Computing\u201c haben wir uns als Gruppe dazu entschieden aufbauend auf teilweise bereits vorhandener Codebasis an einem Startup-Projekt weiterzuarbeiten. Der Hauptfokus lag bei uns auf dem Ausbau von DevOps-Aspekten und auf dem eines stabilen und sicheren Systems, welches auch in der\u2026","rel":"","context":"In &quot;Cloud Technologies&quot;","block_context":{"text":"Cloud Technologies","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/scalable-systems\/cloud-technologies\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/img.youtube.com\/vi\/qw9ZkWnvR4M\/0.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":11711,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2020\/09\/29\/perfekter-gluhwein-fur-zuhause-thermometer-mit-raspberry-pi-und-aws\/","url_meta":{"origin":23679,"position":1},"title":"Perfekter Gl\u00fchwein f\u00fcr Zuhause: Thermometer mit Raspberry Pi und AWS","author":"jg129","date":"29. September 2020","format":false,"excerpt":"Abstract Kein anderes Getr\u00e4nk ist mit Weihnachtsm\u00e4rkten so verbunden wie Gl\u00fchwein. Und so trinkt sich der ausschweifende Weihnachtsmarktbesucher im Laufe der Adventszeit von Stand zu Stand bis er schlie\u00dflich am Ende des Jahres seinen Lieblingsstand gefunden hat. Doch auch daheim kann der perfekte Gl\u00fchwein gelingen.\u00a0 Wir zeigen, wie man sich\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/lh3.googleusercontent.com\/rbu36fXExVo14XfyUicXbIFjAgh1bvNnXHlaUVRfqLevpyZx4KVyjeuYdgItPx6y39R8L9Ub_hug03LYM3AIAW_F14vhBiXOZlt92qIpN0Y2h0H-czZ65ERnn3qUoWVh7JfI5ihA","width":350,"height":200,"srcset":"https:\/\/lh3.googleusercontent.com\/rbu36fXExVo14XfyUicXbIFjAgh1bvNnXHlaUVRfqLevpyZx4KVyjeuYdgItPx6y39R8L9Ub_hug03LYM3AIAW_F14vhBiXOZlt92qIpN0Y2h0H-czZ65ERnn3qUoWVh7JfI5ihA 1x, https:\/\/lh3.googleusercontent.com\/rbu36fXExVo14XfyUicXbIFjAgh1bvNnXHlaUVRfqLevpyZx4KVyjeuYdgItPx6y39R8L9Ub_hug03LYM3AIAW_F14vhBiXOZlt92qIpN0Y2h0H-czZ65ERnn3qUoWVh7JfI5ihA 1.5x"},"classes":[]},{"id":25735,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/09\/13\/fastchat-your-words-instantly-delivered\/","url_meta":{"origin":23679,"position":2},"title":"FastChat &#8211; Your Words, Instantly Delivered","author":"Michael Dick","date":"13. September 2023","format":false,"excerpt":"Einf\u00fchrung Herzlich willkommen zu unserem Blogbeitrag \u00fcber FastChat, einer neuen Web-Chat-Anwendung, die das Kommunizieren im Internet auf ein neues Level hebt. In diesem Beitrag m\u00f6chten wir euch die Hintergrundgeschichte zu diesem Projekt, unsere Ziele und die Funktionalit\u00e4ten vorstellen, welche wir erfolgreich umgesetzt haben. Tauchen wir ein!\u00a0 Unsere Idee f\u00fcr FastChat\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/W_QwicX4WJDR2dKB4QjdppG7EF6IIhCEhDAhLUwZVqX2aHDevpVSAuBbz3tV3zaTEtIeWbiE3At_usAvJ3fl5Fx3Rohme2aszYrChgGMn6oyTmHH9_6xo1xrIQwnjpvaZ_iFRnKrl0m9L_3o2H3j7wo.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/W_QwicX4WJDR2dKB4QjdppG7EF6IIhCEhDAhLUwZVqX2aHDevpVSAuBbz3tV3zaTEtIeWbiE3At_usAvJ3fl5Fx3Rohme2aszYrChgGMn6oyTmHH9_6xo1xrIQwnjpvaZ_iFRnKrl0m9L_3o2H3j7wo.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/W_QwicX4WJDR2dKB4QjdppG7EF6IIhCEhDAhLUwZVqX2aHDevpVSAuBbz3tV3zaTEtIeWbiE3At_usAvJ3fl5Fx3Rohme2aszYrChgGMn6oyTmHH9_6xo1xrIQwnjpvaZ_iFRnKrl0m9L_3o2H3j7wo.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/W_QwicX4WJDR2dKB4QjdppG7EF6IIhCEhDAhLUwZVqX2aHDevpVSAuBbz3tV3zaTEtIeWbiE3At_usAvJ3fl5Fx3Rohme2aszYrChgGMn6oyTmHH9_6xo1xrIQwnjpvaZ_iFRnKrl0m9L_3o2H3j7wo.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":27369,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2025\/02\/26\/cloudy-mit-aussicht-auf-worter-unser-weg-mit-crowdcloud\/","url_meta":{"origin":23679,"position":3},"title":"Cloudy mit Aussicht auf W\u00f6rter: Unser Weg mit CrowdCloud","author":"Simon Wimmer","date":"26. February 2025","format":false,"excerpt":"Willkommen zu unserem Erfahrungsbericht aus der Vorlesung \u201eSystem Engineering and Management\u201c. In den letzten Monaten haben wir uns an ein Projekt gewagt, das uns sowohl technisch als auch pers\u00f6nlich herausgefordert hat \u2013 CrowdCloud. Anstatt uns in trockene Theorien zu verlieren, m\u00f6chten wir euch in diesem Blog-Beitrag erz\u00e4hlen, wie aus einer\u2026","rel":"","context":"In &quot;System Engineering&quot;","block_context":{"text":"System Engineering","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/system-designs\/system-engineering\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/02\/System_Engineering.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/02\/System_Engineering.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/02\/System_Engineering.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/02\/System_Engineering.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/02\/System_Engineering.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/02\/System_Engineering.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":25800,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/09\/14\/splid-2-0-die-zukunft-des-gemeinsamen-ausgabenmanagements\/","url_meta":{"origin":23679,"position":4},"title":"Splid 2.0 &#8211; Die Zukunft des gemeinsamen Ausgabenmanagements","author":"David Christoph Scheifers","date":"14. September 2023","format":false,"excerpt":"Im Rahmen der Vorlesung \u201cSoftware Development for Cloud Computing\u201d haben wir uns daf\u00fcr entschieden, einen Klon der App Splid auf Basis unterschiedlicher Cloud Technologien als Web App zu entwickeln, um uns so die Grundkenntnisse des Cloud Computings anzueignen. Projektidee Bei gemeinsamen Aktivit\u00e4ten und Gruppenausgaben ist es sehr hilfreich, einfache und\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/image6.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/image6.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/image6.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/image6.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/image6.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/image6.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":28011,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2025\/09\/11\/cloud-native-security-scanner\/","url_meta":{"origin":23679,"position":5},"title":"Cloud-native Security Scanner","author":"Tim Ruff","date":"11. September 2025","format":false,"excerpt":"Dieses Projekt wurde im Rahmen der Vorlesung \u201eSoftware Development for Cloud Computing\u201c umgesetzt. Ausgangslage und Projektidee Unser bisheriger Fokus im Studium lag haupts\u00e4chlich auf Themen der IT-Security und Machine Learning, weshalb wir beide bis auf die grundlegenden Vorlesungen zum Thema Software Entwicklung kaum Erfahrungen in diesem Bereich gesammelt haben. Aus\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/09\/image.jpeg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/09\/image.jpeg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/09\/image.jpeg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/09\/image.jpeg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/09\/image.jpeg?resize=1050%2C600&ssl=1 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"authors":[{"term_id":880,"user_id":1096,"is_guest":0,"slug":"ag164","display_name":"ag164","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bf8f7b99ae0aa9f55f682c9ed712cb6c34026d500e4098c85236b5c01f1b8da9?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/23679","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/users\/1096"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/comments?post=23679"}],"version-history":[{"count":1,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/23679\/revisions"}],"predecessor-version":[{"id":23680,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/23679\/revisions\/23680"}],"wp:attachment":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/media?parent=23679"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/categories?post=23679"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/tags?post=23679"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/ppma_author?post=23679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}