{"id":29183,"date":"2024-09-30T16:56:00","date_gmt":"2024-09-30T15:56:00","guid":{"rendered":"https:\/\/www.web-systems.pl\/microservices-in-der-praxis-vorteile-und-herausforderungen\/"},"modified":"2024-09-30T16:56:00","modified_gmt":"2024-09-30T15:56:00","slug":"microservices-in-der-praxis-vorteile-und-herausforderungen","status":"publish","type":"post","link":"https:\/\/www.web-systems.pl\/de\/microservices-in-der-praxis-vorteile-und-herausforderungen\/","title":{"rendered":"Microservices in der Praxis: Vorteile und Herausforderungen in der Anwendungsarchitektur"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In der Web-Development-Branche h\u00f6rt man immer h\u00e4ufiger von <em>Microservices<\/em>, also von einem Ansatz, umfangreiche Anwendungen zu entwickeln, indem man sie in kleine, voneinander unabh\u00e4ngige Dienste aufteilt. Sie erm\u00f6glichen mehr Flexibilit\u00e4t, eine schnellere Entwicklung und eine wirksamere Skalierung. Zugleich haben Microservices wie jede Architektur ihre Schw\u00e4chen und Fallstricke: Ihre Umsetzung erfordert eine durchdachte Strategie und passende Werkzeuge. In einer Welt sich dynamisch ver\u00e4ndernder gesch\u00e4ftlicher Rahmenbedingungen, umfangreicher Online-Dienste und wachsender Nutzererwartungen wird dieser Ansatz f\u00fcr viele Unternehmen zentral, weil er eine effiziente Ressourcenverwaltung und eine schnelle Reaktion auf Ver\u00e4nderungen im Marktumfeld erm\u00f6glicht. In diesem Artikel sehen wir uns an, was Microservices eigentlich sind, welche Probleme sie l\u00f6sen und welche neuen Herausforderungen sie in Projekte einbringen k\u00f6nnen. Sie erfahren au\u00dferdem, in welchen Situationen sich Microservices besonders lohnen und warum in manchen F\u00e4llen die traditionelle monolithische Architektur weiterhin die bessere Wahl sein kann.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis tre\u015bci<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.web-systems.pl\/de\/microservices-in-der-praxis-vorteile-und-herausforderungen\/#Worin_besteht_die_Microservice-Architektur\" >Worin besteht die Microservice-Architektur?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.web-systems.pl\/de\/microservices-in-der-praxis-vorteile-und-herausforderungen\/#Vorteile_von_Microservices_Flexibilitaet_Skalierbarkeit_und_schnelle_Umsetzung\" >Vorteile von Microservices: Flexibilit\u00e4t, Skalierbarkeit und schnelle Umsetzung<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.web-systems.pl\/de\/microservices-in-der-praxis-vorteile-und-herausforderungen\/#Herausforderungen_und_Schwierigkeiten_in_Microservice-Projekten\" >Herausforderungen und Schwierigkeiten in Microservice-Projekten<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.web-systems.pl\/de\/microservices-in-der-praxis-vorteile-und-herausforderungen\/#Anwendungsfaelle_fuer_Microservices\" >Anwendungsf\u00e4lle f\u00fcr Microservices<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.web-systems.pl\/de\/microservices-in-der-praxis-vorteile-und-herausforderungen\/#Kommunikation_zwischen_Diensten_und_Integrationsstrategie\" >Kommunikation zwischen Diensten und Integrationsstrategie<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.web-systems.pl\/de\/microservices-in-der-praxis-vorteile-und-herausforderungen\/#Ueberwachung_und_Wartung_einer_Microservice-Anwendung\" >\u00dcberwachung und Wartung einer Microservice-Anwendung<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.web-systems.pl\/de\/microservices-in-der-praxis-vorteile-und-herausforderungen\/#Best_Practices_bei_der_Einfuehrung_von_Microservices\" >Best Practices bei der Einf\u00fchrung von Microservices<\/a><\/li><\/ul><\/nav><\/div>\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Worin_besteht_die_Microservice-Architektur\"><\/span>Worin besteht die Microservice-Architektur?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In traditionellen monolithischen Anwendungen sind die gesamte Gesch\u00e4ftslogik und alle Funktionen in einer einzigen Codestruktur geb\u00fcndelt, die als ein einziger, zusammenh\u00e4ngender Prozess l\u00e4uft. Das bedeutet, dass selbst kleine \u00c4nderungen in einem Modul die Stabilit\u00e4t oder Leistung der gesamten Anwendung beeinflussen k\u00f6nnen. <em>Microservices<\/em> sind dagegen eine Reihe kleiner, voneinander getrennter Dienste, von denen jeder eine bestimmte Funktion erf\u00fcllt (z. B. Authentifizierung, Zahlungsabwicklung, Verwaltung des Produktkatalogs) und \u00fcber Netzwerkprotokolle oder Warteschlangen mit den \u00fcbrigen Diensten kommuniziert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Meist geht man davon aus, dass Microservices unabh\u00e4ngig voneinander ausgerollt werden und unterschiedliche Technologien nutzen k\u00f6nnen. Dadurch hat jedes Entwicklungsteam mehr Freiheit bei der Wahl seiner Werkzeuge und kann auch unabh\u00e4ngig \u00fcber den Zeitplan f\u00fcr die n\u00e4chsten Versionen seines Dienstes entscheiden. Eine solche Aufteilung beseitigt das f\u00fcr den Monolithen typische Flaschenhals-Problem, bei dem sich die Verarbeitung von Anfragen in einem gro\u00dfen Prozess verlangsamt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Microservice-Ansatz nutzt die Idee der <em>horizontalen Skalierung<\/em>. Das hei\u00dft: Statt die Rechenleistung eines einzelnen Servers zu erh\u00f6hen (vertikale Skalierung), lassen sich mehr Kopien einzelner Microservices starten, etwa in der Cloud. Neben der besseren Ressourcennutzung ergibt sich daraus auch eine h\u00f6here Ausfallsicherheit: Wenn ein Dienst ausf\u00e4llt, kann der Rest der Anwendung weiterhin korrekt funktionieren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Vorteile_von_Microservices_Flexibilitaet_Skalierbarkeit_und_schnelle_Umsetzung\"><\/span>Vorteile von Microservices: Flexibilit\u00e4t, Skalierbarkeit und schnelle Umsetzung<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Einer der Hauptgr\u00fcnde, warum sich Unternehmen f\u00fcr Microservices entscheiden, ist die <em>Flexibilit\u00e4t<\/em> sowie die M\u00f6glichkeit, einzelne Systembestandteile unabh\u00e4ngig weiterzuentwickeln. Jeder Microservice l\u00e4sst sich im eigenen Tempo aktualisieren, ohne dass man sich um die Kompatibilit\u00e4t mit den \u00fcbrigen Modulen sorgen muss, sofern Schnittstellen und Abh\u00e4ngigkeiten sauber definiert sind.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein weiterer wichtiger Vorteil ist die <em>einfache Skalierung<\/em>. Bei hohem Traffic oder saisonalen Spitzen (z. B. im E-Commerce vor den Feiertagen) lassen sich zus\u00e4tzliche Instanzen des Microservice starten, der f\u00fcr die am st\u00e4rksten belasteten Bereiche des Systems zust\u00e4ndig ist, ohne in den Ausbau der gesamten Anwendung zu investieren. Im Ergebnis nutzen wir die Serverressourcen effizienter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Microservices beg\u00fcnstigen auch eine <em>schnellere Einf\u00fchrung neuer Funktionen<\/em>, weil wir einen kleineren Codeausschnitt anpassen als in einer monolithischen Architektur. Kleine Dienste sind zudem von Natur aus leichter f\u00fcr Entwicklungsteams zu verstehen und zu testen, was die Komplexit\u00e4t des Projekts verringert.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Herausforderungen_und_Schwierigkeiten_in_Microservice-Projekten\"><\/span>Herausforderungen und Schwierigkeiten in Microservice-Projekten<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Auch wenn die Vorstellung unabh\u00e4ngiger Dienste attraktiv klingt, sollte man bedenken, dass Microservices eine zus\u00e4tzliche Ebene der <em>Komplexit\u00e4t<\/em> einf\u00fchren. Im Monolithen findet die Kommunikation zwischen den Modulen intern statt, bei Microservices dagegen \u00fcber Netzwerkprotokolle (HTTP, gRPC, AMQP usw.). Das bedeutet, dass Netzwerk, Endpunkt-Konfiguration und Fehlerbehandlung auf Client-Seite entsprechend verwaltet werden m\u00fcssen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Man muss sich au\u00dferdem auf eine <em>umfangreichere Infrastruktur<\/em> einstellen, h\u00e4ufig in Form von Containerisierung (Docker, Kubernetes) und Orchestrierungsmechanismen. Eine Microservice-Anwendung hat mehr Punkte, an denen ein Ausfall auftreten kann (z. B. die Nichtverf\u00fcgbarkeit eines einzelnen Microservice), was Retry-Mechanismen, Circuit Breaker und Monitoring-Werkzeuge (Prometheus, Grafana) erforderlich macht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auch Testen und Debugging werden <em>komplizierter<\/em>, insbesondere wenn mehrere Dienste in der Entwicklungsumgebung gestartet werden m\u00fcssen. Manche Unternehmen entscheiden sich deshalb, bei der monolithischen Architektur (oder bei einer Hybridl\u00f6sung) zu bleiben, weil der Vorteil von Microservices in ihrem Fall im Vergleich zur wachsenden Zahl an Abh\u00e4ngigkeiten nicht so gro\u00df ist.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Anwendungsfaelle_fuer_Microservices\"><\/span>Anwendungsf\u00e4lle f\u00fcr Microservices<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Microservices bew\u00e4hren sich am besten in Situationen, in denen:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Das Projekt dynamisch w\u00e4chst<\/strong><br>Wenn wir wissen, dass unser System k\u00fcnftig stark ausgebaut wird und wir \u00c4nderungen in verschiedenen Bereichen schnell einf\u00fchren m\u00fcssen, k\u00f6nnen Microservices die Arbeit erleichtern und Code-Chaos verhindern.<\/li>\n\n\n\n<li><strong>Das Team in viele spezialisierte Gruppen aufgeteilt ist<\/strong><br>Die M\u00f6glichkeit, einzelne Dienste zu trennen, ist ein Vorteil, wenn Teams nahezu unabh\u00e4ngig arbeiten und eigene Technologien und Entwicklungsstrategien w\u00e4hlen k\u00f6nnen.<\/li>\n\n\n\n<li><strong>Eine hohe Skalierbarkeit gefordert ist<\/strong><br>F\u00fcr Dienste mit rasch wachsender Nutzerzahl er\u00f6ffnen Microservices einen einfachen Weg zur Skalierung (z. B. ein separater Cluster f\u00fcr den Microservice, der die Zahlungen abwickelt).<\/li>\n\n\n\n<li><strong>Zuverl\u00e4ssigkeit entscheidend ist<\/strong><br>Eine St\u00f6rung eines einzelnen Dienstes muss nicht das gesamte System lahmlegen, was zu einer h\u00f6heren Verf\u00fcgbarkeit und einem geringeren Verlustrisiko f\u00fchrt.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn wir dagegen eine kleine Anwendung mit begrenztem Umfang entwickeln und nur selten \u00c4nderungen einf\u00fchren, kann sich zeigen, dass die monolithische Architektur die wirtschaftlichere Wahl ist.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Kommunikation_zwischen_Diensten_und_Integrationsstrategie\"><\/span>Kommunikation zwischen Diensten und Integrationsstrategie<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Bei Microservices ist die Art der Kommunikation zwischen den Diensten besonders wichtig. Die verbreitetsten Ans\u00e4tze sind:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>RESTful API<\/strong>: Nutzung des HTTP-Protokolls zum Austausch von Nachrichten. Einfach umzusetzen und von Werkzeugen breit unterst\u00fctzt.<\/li>\n\n\n\n<li><strong>gRPC<\/strong>: Ein Ansatz auf Basis des HTTP\/2-Protokolls und des Protobuf-Formats, der eine schnelle und effiziente \u00dcbertragung sicherstellt. Besonders attraktiv bei einer gro\u00dfen Zahl von Aufrufen zwischen Diensten.<\/li>\n\n\n\n<li><strong>Nachrichtenwarteschlangen (MQ)<\/strong>: Beispiele sind RabbitMQ oder Apache Kafka. Sie bew\u00e4hren sich, wenn wir auf eine lockerere Kopplung zwischen den Diensten und auf asynchrone Verarbeitung von Anfragen setzen wollen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Die Wahl der konkreten Methode h\u00e4ngt vom Charakter der Anwendung und von der H\u00e4ufigkeit der Aufrufe ab. Bei verteilten Systemen mit vielen Interaktionen kann der asynchrone Ansatz gro\u00dfe Vorteile bringen, weil er Verz\u00f6gerungen durch das Warten auf Antworten minimiert.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ueberwachung_und_Wartung_einer_Microservice-Anwendung\"><\/span>\u00dcberwachung und Wartung einer Microservice-Anwendung<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Aufgrund der Vielzahl der Komponenten gewinnt das <em>Monitoring<\/em> bei Microservices erstrangige Bedeutung. In der Praxis reicht das reine Protokollieren von Ereignissen nicht mehr aus; n\u00f6tig sind fortgeschrittenere Werkzeuge, die den Fluss der Anfragen durch die einzelnen Dienste nachverfolgen. Das sogenannte <em>Distributed Tracing<\/em> (z. B. Jaeger, Zipkin) macht es m\u00f6glich zu verstehen, an welcher Stelle des Systems die Verz\u00f6gerung entsteht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ebenso wichtig ist die Analyse von Leistungskennzahlen, zum Beispiel der Reaktionszeit, der Speichernutzung oder der Zahl der bearbeiteten Anfragen. So l\u00e4sst sich rechtzeitig auf eine wachsende \u00dcberlastung oder unvorhergesehene Fehler reagieren. Schlie\u00dflich sollte ein Alarmsystem melden, wenn ein Dienst nicht mehr antwortet oder die Zahl fehlgeschlagener Anfragen \u00fcber einen festgelegten Schwellenwert steigt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aus Sicht der Administration werden Microservices oft mit der <em>DevOps<\/em>-Praxis und mit Containerisierung verbunden. Umgebungen wie Docker, Kubernetes oder AWS ECS erleichtern die Verwaltung vieler Dienste und stellen sicher, dass jeder Microservice in der erforderlichen Zahl von Instanzen verf\u00fcgbar ist.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Best_Practices_bei_der_Einfuehrung_von_Microservices\"><\/span>Best Practices bei der Einf\u00fchrung von Microservices<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Beginnen Sie mit einem kleinen Ausschnitt<\/strong><br>Versuchen Sie nicht, die gesamte monolithische Anwendung sofort in ein Dutzend Microservices zu zerlegen. Besser ist es, eine einzelne Funktionalit\u00e4t herauszul\u00f6sen und zu pr\u00fcfen, wie ein solches Modell in der Praxis funktioniert.<\/li>\n\n\n\n<li><strong>Definieren Sie klare Grenzen der Dienste<\/strong><br>Jeder Microservice sollte eine klar festgelegte Verantwortung haben und die Logik eines anderen Dienstes nicht duplizieren. Hilfreich ist dabei das Konzept des <em>Bounded Context<\/em> aus dem Domain-Driven Design.<\/li>\n\n\n\n<li><strong>Halten Sie die Schnittstellen stabil<\/strong><br>Wenn der Client einen festen API-Vertrag verlangt, wird das Einf\u00fchren von \u00c4nderungen in einem Dienst deutlich einfacher, weil das Risiko entf\u00e4llt, die \u00fcbrigen Systembestandteile zu besch\u00e4digen.<\/li>\n\n\n\n<li><strong>Automatisieren Sie Tests und Deployments<\/strong><br>Bei einer gro\u00dfen Zahl von Diensten kann manuelles Testen zum Albtraum werden. Sorgen Sie f\u00fcr kontinuierliche Integration und Auslieferung (CI\/CD), einschlie\u00dflich End-to-End-Tests.<\/li>\n\n\n\n<li><strong>Stellen Sie geeignete Monitoring-Werkzeuge bereit<\/strong><br>Ohne Einblick in den aktuellen Zustand der Dienste k\u00f6nnen Probleme zu sp\u00e4t erkannt werden, was zu einem Vertrauensverlust bei den Nutzern f\u00fchrt.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Microservices sind nicht nur eine Mode, sondern vor allem eine Architektur, die eine bessere Anpassung an sich dynamisch ver\u00e4ndernde Marktanforderungen und gesch\u00e4ftliche Bed\u00fcrfnisse erlaubt. Mit ihnen lassen sich Anwendungen entwerfen, die skalierbarer, modularer und ausfallsicherer sind. Die Vorteile dieses Ansatzes stellen sich jedoch nicht von selbst ein: Sie sind damit verbunden, neue Herausforderungen zu meistern, etwa die Verwaltung der Netzwerkkommunikation, die Sicherheit, eine umfangreiche Infrastruktur oder das Monitoring. Aus diesem Grund sollte man die Welt der Microservices nicht ohne soliden Plan und ein entsprechend geschultes Team betreten. Sehr wichtig ist es, die Grenzen der Dienste richtig zu ziehen, damit es nicht zu einer \u00fcberm\u00e4\u00dfigen Fragmentierung der Anwendung kommt, die langfristig die Effizienz verschlechtern und die Wartungskosten steigen lassen k\u00f6nnte. Dennoch werden Microservices, wenn sie mit Verstand umgesetzt werden, zu einem m\u00e4chtigen Werkzeug in den H\u00e4nden von Entwicklern und Unternehmen. Sie erleichtern die schnelle Reaktion auf ver\u00e4nderte Marktbedingungen, erlauben das bedarfsgerechte Skalieren ausgew\u00e4hlter Funktionen und geben den einzelnen Teams mehr Autonomie. All das zusammen sorgt daf\u00fcr, dass die Microservice-Architektur bei Unternehmen, die auf innovative L\u00f6sungen und dynamisches Wachstum setzen, immer beliebter wird.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>In der Web-Development-Branche h\u00f6rt man immer h\u00e4ufiger von Microservices, also von einem Ansatz, umfangreiche Anwendungen zu entwickeln, indem man sie in kleine, voneinander unabh\u00e4ngige Dienste aufteilt. Sie erm\u00f6glichen mehr Flexibilit\u00e4t, eine schnellere Entwicklung und eine wirksamere Skalierung. Zugleich haben Microservices wie jede Architektur ihre Schw\u00e4chen und Fallstricke: Ihre Umsetzung erfordert eine durchdachte Strategie und passende [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":25857,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[835,807],"tags":[1358,939,1277,1360,1121],"class_list":["post-29183","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-neuigkeiten-trends","category-webentwicklung","tag-anwendungsarchitektur","tag-devops-de","tag-microservices-de","tag-rest-de","tag-skalierbarkeit"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/posts\/29183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/comments?post=29183"}],"version-history":[{"count":0,"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/posts\/29183\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/media\/25857"}],"wp:attachment":[{"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/media?parent=29183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/categories?post=29183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/tags?post=29183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}