{"id":95403,"date":"2020-09-28T19:43:15","date_gmt":"2020-09-28T17:43:15","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-3"},"modified":"2020-09-28T19:43:15","modified_gmt":"2020-09-28T17:43:15","slug":"vybor-arhitekturnogo-stilya-chast-3","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-3","title":{"rendered":"Wyb\u00f3r stylu architektury (cz\u0119\u015b\u0107 3)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>Cze\u015b\u0107, Habr. Dzi\u015b kontynuuj\u0119 seri\u0119 publikacji, kt\u00f3r\u0105 napisa\u0142em specjalnie z okazji rozpocz\u0119cia nowego cyklu kursu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/z0Ur\/\">\u201eArchitektura Oprogramowania\u201d<\/a><\/noindex>.<\/i><\/b><\/p>\n<p><\/p>\n<h2>Wprowadzenie<\/h2>\n<p>\nWyb\u00f3r stylu architektonicznego jest jednym z podstawowych decyzji technicznych przy budowie systemu informacyjnego. W tej serii artyku\u0142\u00f3w proponuj\u0119 om\u00f3wi\u0107 najpopularniejsze style architektoniczne budowy aplikacji i odpowiedzie\u0107 na pytanie, kiedy kt\u00f3ry styl architektoniczny jest najbardziej preferowany. W procesie przedstawiania postaram si\u0119 przeprowadzi\u0107 logiczny ci\u0105g, kt\u00f3ry wyja\u015bnia rozw\u00f3j styl\u00f3w architektonicznych od monolit\u00f3w do mikrosystem\u00f3w. <\/p>\n<p>Ostatnim razem porozmawiali\u015bmy o r\u00f3\u017cnych rodzajach monolit\u00f3w i wykorzystaniu komponent\u00f3w do ich budowy, zar\u00f3wno komponent\u00f3w zestaw\u00f3w, jak i komponent\u00f3w wdro\u017ceniowych. Zrozumieli\u015bmy architektur\u0119 zorientowan\u0105 na us\u0142ugi.<\/p>\n<p>Teraz w ko\u0144cu zdefiniujemy podstawowe cechy architektury mikrosystemowej. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Relacje architektoniczne<\/h2>\n<p>\nNale\u017cy zrozumie\u0107, \u017ce na podstawie danych z poprzednich artyku\u0142\u00f3w ka\u017cdy serwis jest komponentem, ale nie ka\u017cdy serwis jest mikrosystemem. <\/p>\n<h2>Cechy architektury mikrosystemowej<\/h2>\n<p>\nPodstawowymi cechami architektury mikrosystemowej s\u0105:<\/p>\n<ul>\n<li>Organizacja zgodnie z mo\u017cliwo\u015bciami biznesowymi (Organized around Business Capabilities)<\/li>\n<li>Produkty, a nie projekty (Products not Projects)<\/li>\n<li>Inteligentne punkty dost\u0119pu i g\u0142upie kana\u0142y (Smart endpoints and dumb pipes)<\/li>\n<li>Zdecentralizowane zarz\u0105dzanie (Decentralized Governance)<\/li>\n<li>Zdecentralizowane zarz\u0105dzanie danymi (Decentralized Data Management)<\/li>\n<li>Automatyzacja infrastruktury (Infrastructure Automation)<\/li>\n<li>Ubezpieczenie przed awariami (Design for failure)<\/li>\n<li>Architektura z ewolucyjnym rozwojem (Evolutionary Design)<\/li>\n<\/ul>\n<p>\nPierwszy punkt pochodzi od architektury zorientowanej na us\u0142ugi, poniewa\u017c mikrosystemy s\u0105 szczeg\u00f3lnym przypadkiem us\u0142ug. Pozosta\u0142e punkty zas\u0142uguj\u0105 na osobne om\u00f3wienie.<\/p>\n<h2>Organizacja zgodnie z mo\u017cliwo\u015bciami biznesowymi (Organized around Business Capabilities)<\/h2>\n<p>\nTeraz nale\u017cy przypomnie\u0107 sobie prawo Conwaya: organizacje tworz\u0105ce systemy organizuj\u0105 ich architektur\u0119, kopuj\u0105c struktur\u0119 interakcji w ramach tych organizacji. Jako przyk\u0142ad mo\u017cna przypomnie\u0107 sobie przypadek tworzenia kompilatora: zesp\u00f3\u0142 sk\u0142adaj\u0105cy si\u0119 z siedmiu os\u00f3b opracowa\u0142 siedmioprzebiegowy kompilator, a zesp\u00f3\u0142 z pi\u0119ciu \u2014 pi\u0119cioprzebiegowy.<\/p>\n<p>Je\u015bli m\u00f3wimy o monolitach i mikrous\u0142ugach, to w przypadku, gdy rozw\u00f3j jest zorganizowany wed\u0142ug funkcjonalnych dzia\u0142\u00f3w (backend, frontend, administratorzy baz danych), powstaje klasyczny monolit. <\/p>\n<p>Aby uzyska\u0107 mikrous\u0142ugi, zespo\u0142y nale\u017cy organizowa\u0107 wed\u0142ug mo\u017cliwo\u015bci biznesowych (zesp\u00f3\u0142 zam\u00f3wie\u0144, dostaw, katalogu). Taka organizacja pozwoli zespo\u0142om skupi\u0107 si\u0119 na tworzeniu konkretnych cz\u0119\u015bci aplikacji.<\/p>\n<h2>Produkty, a nie projekty (Products not Projects)<\/h2>\n<p>\nPodej\u015bcie projektowe, w kt\u00f3rym zesp\u00f3\u0142 przekazuje opracowan\u0105 funkcjonalno\u015b\u0107 innym zespo\u0142om w przypadku architektury mikrous\u0142ugowej, jest zupe\u0142nie nieodpowiednie. Zesp\u00f3\u0142 powinien wspiera\u0107 system przez ca\u0142y jego cykl \u017cycia. Firma Amazon, jeden z pionier\u00f3w wprowadzania mikrous\u0142ug, twierdzi\u0142a: \u201etworzysz produkt, i to ty go uruchamiasz\u201d (\u201eyou build, you run it\u201d). Podej\u015bcie produktowe pozwala zespo\u0142owi poczu\u0107 potrzeby biznesu. <\/p>\n<h2>Inteligentne punkty dost\u0119pu i g\u0142upie kana\u0142y (Smart endpoints and dumb pipes)<\/h2>\n<p>\nArchitektura SOA k\u0142ad\u0142a du\u017cy nacisk na kana\u0142y komunikacji, w szczeg\u00f3lno\u015bci na Enterprise Service Bus (szyn\u0119 us\u0142ugow\u0105 przedsi\u0119biorstwa). Co cz\u0119sto prowadzi do Erroneous Spaghetti Box, czyli z\u0142o\u017cono\u015b\u0107 monolitu przechodzi w z\u0142o\u017cono\u015b\u0107 po\u0142\u0105cze\u0144 mi\u0119dzy us\u0142ugami. W architekturze mikrous\u0142ugowej stosowane s\u0105 tylko proste metody interakcji.<\/p>\n<h2>Zdecentralizowane zarz\u0105dzanie (Decentralized Governance)<\/h2>\n<p>\nKluczowe decyzje dotycz\u0105ce mikrous\u0142ug powinny podejmowa\u0107 osoby, kt\u00f3re naprawd\u0119 rozwijaj\u0105 mikrous\u0142ugi. Przez kluczowe decyzje rozumie si\u0119 wyb\u00f3r<br \/>\nj\u0119zyk\u00f3w programowania, metodologii wdra\u017cania, kontrakt\u00f3w publicznych interfejs\u00f3w itd. <\/p>\n<h2>Zdecentralizowane zarz\u0105dzanie danymi (Decentralized Data Management)<\/h2>\n<p>\nStandardowe podej\u015bcie, w kt\u00f3rym aplikacja polega na jednej bazie danych, nie mo\u017ce uwzgl\u0119dnia\u0107 specyfiki ka\u017cdego konkretnego serwisu. MSA zak\u0142ada zdecentralizowane zarz\u0105dzanie danymi, a\u017c do u\u017cycia r\u00f3\u017cnych technologii.<\/p>\n<h2>Automatyzacja infrastruktury (Infrastructure Automation)<\/h2>\n<p>\nMSA wspiera procesy ci\u0105g\u0142ego wdra\u017cania i dostarczania. Mo\u017cliwe jest to tylko dzi\u0119ki automatyzacji proces\u00f3w. W tym przypadku, wdra\u017canie du\u017cej liczby us\u0142ug nie wydaje si\u0119 ju\u017c czym\u015b przera\u017caj\u0105cym. Proces wdra\u017cania powinien sta\u0107 si\u0119 nudny. Drugi aspekt dotyczy zarz\u0105dzania us\u0142ugami w \u015brodowisku produkcyjnym. Bez automatyzacji zarz\u0105dzanie procesami uruchomionymi w r\u00f3\u017cnych \u015brodowiskach operacyjnych staje si\u0119 niemo\u017cliwe.<\/p>\n<h2>Ubezpieczenie przed awariami (Design for failure)<\/h2>\n<p>\nWielu us\u0142ugom MSA zdarzaj\u0105 si\u0119 awarie. W zwi\u0105zku z tym obs\u0142uga b\u0142\u0119d\u00f3w w rozproszonym systemie jest do\u015b\u0107 skomplikowanym zadaniem. Architektura aplikacji powinna by\u0107 odporna na takie awarie. Rebecca Parsons uwa\u017ca, \u017ce bardzo wa\u017cne jest, aby\u015bmy przestali u\u017cywa\u0107 nawet komunikacji wewn\u0119trznej mi\u0119dzy us\u0142ugami; zamiast tego do komunikacji korzystamy z HTTP, kt\u00f3re nie jest tak niezawodne.<\/p>\n<h2>Architektura z ewolucyjnym rozwojem (Evolutionary Design)<\/h2>\n<p>\nArchitektura systemu MSA powinna rozwija\u0107 si\u0119 ewolucyjnie. Po\u017c\u0105dane jest ograniczenie koniecznych zmian do granic jednej us\u0142ugi. Nale\u017cy tak\u017ce uwzgl\u0119dni\u0107 wp\u0142yw na inne us\u0142ugi. Tradycyjne podej\u015bcie polega na pr\u00f3bie rozwi\u0105zania tego problemu za pomoc\u0105 zarz\u0105dzania wersjami, ale MSA zak\u0142ada wykorzystanie zarz\u0105dzania wersjami jako<br \/>\n\u015brodka ostatecznego.<\/p>\n<h2>Podsumowanie<\/h2>\n<p>\nPo wszystkim, co zosta\u0142o powiedziane, mo\u017cemy zestawi\u0107 definicj\u0119 mikrous\u0142ug. Architektura mikrous\u0142ug to podej\u015bcie do tworzenia pojedynczej aplikacji jako zestawu ma\u0142ych us\u0142ug, z kt\u00f3rych ka\u017cda dzia\u0142a w swoim w\u0142asnym procesie i komunikuje si\u0119 za po\u015brednictwem uproszczonych mechanizm\u00f3w, cz\u0119sto interfejsu API HTTP zasob\u00f3w. Us\u0142ugi te s\u0105 oparte na mo\u017cliwo\u015bciach biznesowych i mog\u0105 by\u0107 wdra\u017cane niezale\u017cnie za pomoc\u0105 w pe\u0142ni<br \/>\nzautomatyzowanego mechanizmu wdra\u017cania. Istnieje minimalny poziom centralnego zarz\u0105dzania tymi us\u0142ugami, kt\u00f3re mog\u0105 by\u0107 napisane w r\u00f3\u017cnych j\u0119zykach programowania i wykorzystywa\u0107 r\u00f3\u017cne technologie przechowywania danych.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/z0Ur\/\"><img decoding=\"async\" alt=\"Wyb\u00f3r stylu architektury (cz\u0119\u015b\u0107 3)\" src=\"\/wp-content\/uploads\/2020\/09\/f9ffd06c83921f64818842327c09108e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><i><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/519456\/\">Przeczytaj cz\u0119\u015b\u0107 2<\/a><\/noindex><\/i><br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/520870\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043e\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0438\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439 \u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u0441\u0442\u0438\u043b\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u043a\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":95404,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-95403","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-3\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f (\u0447\u0430\u0441\u0442\u044c 3) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-3\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-09-28T17:43:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-28T17:43:15+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wyb\u00f3r stylu architektonicznego (cz\u0119\u015b\u0107 3) | ProHoster","description":"Cze\u015b\u0107, Habr.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-3","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f (\u0447\u0430\u0441\u0442\u044c 3) | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-3","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-09-28T17:43:15+00:00","article:modified_time":"2020-09-28T17:43:15+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"95403","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:06:26","updated":"2022-10-01 11:38:49","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/95403","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=95403"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/95403\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/95404"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=95403"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=95403"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=95403"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}