{"id":28949,"date":"2024-09-06T05:00:00","date_gmt":"2024-09-06T03:00:00","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=28949"},"modified":"2024-09-05T08:50:08","modified_gmt":"2024-09-05T06:50:08","slug":"automatyzacja-pipeline-kluczem-do-sukcesu-projektow-w-devops-dla-d365-fo-czesc-i","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/automatyzacja-pipeline-kluczem-do-sukcesu-projektow-w-devops-dla-d365-fo-czesc-i\/","title":{"rendered":"Automatyzacja pipeline kluczem do sukcesu projekt\u00f3w w DevOps dla D365 F&amp;O. Cz\u0119\u015b\u0107 I"},"content":{"rendered":"\n<p>Pipeline DevOps to zestaw zautomatyzowanych proces\u00f3w i narz\u0119dzi, kt\u00f3ry umo\u017cliwia programistom oraz specjalistom ds. wyda\u0144 oprogramowania wsp\u00f3\u0142prac\u0119 przy tworzeniu i wdra\u017caniu kodu w \u015brodowisku produkcyjnym.<\/p>\n\n\n\n<p>Us\u0142uga Pipelines jest cz\u0119\u015bci\u0105 us\u0142ugi Azure DevOps, kt\u00f3ra automatycznie kompiluje, testuje i wdra\u017ca projekty kodu. \u0141\u0105czy ona&nbsp;ci\u0105g\u0142\u0105 integracj\u0119,&nbsp;ci\u0105g\u0142e testowanie i&nbsp;ci\u0105g\u0142e dostarczanie&nbsp;w celu kompilowania, testowania i dostarczania kodu do dowolnego miejsca docelowego. Obs\u0142uguje wszystkie g\u0142\u00f3wne j\u0119zyki i typy projekt\u00f3w.<\/p>\n\n\n\n<p>Artyku\u0142 wprowadzi Was w \u015bwiat Pipeline, praktyk DevOps oraz korzy\u015bci z wykorzystywania DevOps Pipelines dla D365 F&amp;O.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pipeline a praktyki DevOps<\/strong><\/h2>\n\n\n\n<p>Pipeline doskonale wpasowuje si\u0119 w podstawowe obszary praktyki DevOps czyli:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ci\u0105g\u0142a integracja (CI)<\/strong> \u2013 kiedy wiele os\u00f3b pracuje nad t\u0105 sam\u0105 baz\u0105 kodu, r\u00f3\u017cnica mi\u0119dzy ga\u0142\u0119ziami kodu ka\u017cdej osoby ro\u015bnie coraz bardziej w miar\u0119 kontynuowania pracy. Im wi\u0119ksza zmiana, tym trudniej jest scali\u0107 j\u0105 z powrotem z g\u0142\u00f3wn\u0105 baz\u0105 kodu. Ci\u0105g\u0142a integracja zach\u0119ca wsp\u00f3\u0142pracownik\u00f3w do cz\u0119stego scalania swojej pracy z g\u0142\u00f3wn\u0105 ga\u0142\u0119zi\u0105, dzi\u0119ki czemu konflikty s\u0105 \u0142atwe do wykrycia.<\/li>\n\n\n\n<li><strong>Ci\u0105g\u0142e wdra\u017canie (CD)<\/strong> \u2013 ci\u0105g\u0142e wdra\u017canie opiera si\u0119 na ci\u0105g\u0142ej integracji poprzez automatyczne wprowadzanie zmian do r\u00f3\u017cnych \u015brodowisk w spos\u00f3b zautomatyzowany przy u\u017cyciu wsp\u00f3lnego zestawu narz\u0119dzi. Uwa\u017cane za jeden z bardziej zaawansowanych przyk\u0142ad\u00f3w automatyzacji w praktyce DevOps, ci\u0105g\u0142e wdra\u017canie u\u0142atwia przenoszenie dowolnych zatwierdze\u0144 kodu bezpo\u015brednio do produkcji po przej\u015bciu wszystkich niezb\u0119dnych wst\u0119pnie zdefiniowanych test\u00f3w.<\/li>\n\n\n\n<li><strong>Ci\u0105g\u0142e testowanie<\/strong> \u2013 kiedy zatwierdzany jest kod, wi\u0119kszo\u015b\u0107 pipeline DevOps inicjuje jak\u0105\u015b form\u0119 automatycznego testowania. Testy regresyjne sprawdzaj\u0105, czy zmiana nie psuje istniej\u0105cej funkcjonalno\u015bci. Testy jednostkowe weryfikuj\u0105, czy zmiana kodu zapewnia oczekiwane wyniki. Testowanie funkcjonalne mo\u017ce wymaga\u0107 interwencji osoby i u\u017cycia nowej wersji kodu. Nieudany test zatrzyma pipeline i uniemo\u017cliwi scalenie lub wdro\u017cenie kodu.<\/li>\n\n\n\n<li><strong>Ci\u0105g\u0142e monitorowanie<\/strong> \u2013 dane s\u0105 si\u0142\u0105 nap\u0119dow\u0105 pipeline DevOps. Narz\u0119dzia monitoruj\u0105ce pomagaj\u0105 na ka\u017cdym etapie, ale s\u0105 u\u017cywane g\u0142\u00f3wnie w produkcji, aby da\u0107 obraz stanu aplikacji.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Zalety wykorzystywania us\u0142ugi Pipelines<\/strong><\/h2>\n\n\n\n<p>W najprostszej postaci Pipeline DevOps wykorzystuje zautomatyzowane procesy i narz\u0119dzia, aby umo\u017cliwi\u0107 organizacjom szybkie tworzenie, testowanie i dostarczanie oprogramowania u\u017cytkownikom ko\u0144cowym. To oznacza, \u017ce \u200b\u200bg\u0142\u00f3wn\u0105 zalet\u0105 Pipeline DevOps jest <strong>szybko\u015b\u0107 wdra\u017cania<\/strong>.<\/p>\n\n\n\n<p>Us\u0142uga Pipelines zapewnia szybki, \u0142atwy oraz bezpieczny spos\u00f3b automatyzowania kompilowania projekt\u00f3w przy u\u017cyciu sp\u00f3jnego i wysokiej jako\u015bci kodu, kt\u00f3ry jest \u0142atwo dost\u0119pny dla u\u017cytkownik\u00f3w.<\/p>\n\n\n\n<p>Ponadto, oferuje nast\u0119puj\u0105ce korzy\u015bci:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wsp\u00f3\u0142pracuje z dowolnym j\u0119zykiem lub platform\u0105.<\/li>\n\n\n\n<li>Wdra\u017ca w tym samym czasie r\u00f3\u017cne typy obiekt\u00f3w docelowych.<\/li>\n\n\n\n<li>Integruje si\u0119 z wdro\u017ceniami platformy Azure.<\/li>\n\n\n\n<li>Kompiluje si\u0119 na maszynach z systemami Windows, Linux lub Mac.<\/li>\n\n\n\n<li>Integruje si\u0119 z us\u0142ug\u0105 GitHub.<\/li>\n\n\n\n<li>Wsp\u00f3\u0142pracuje z projektami open source.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/09\/image1.png\"><img decoding=\"async\" width=\"926\" height=\"790\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/09\/image1.png\" alt=\"Przyk\u0142adowe pipeline wdro\u017cone w CC D365 F&amp;O\" class=\"wp-image-28950\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/09\/image1.png 926w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/09\/image1-300x256.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/09\/image1-768x655.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/09\/image1-400x340.png 400w\" sizes=\"(max-width: 926px) 100vw, 926px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 1 Przyk\u0142adowe pipeline wdro\u017cone w CC D365 F&amp;O<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Zalety DevOps Pipelines dla D365 F&amp;O<\/strong><\/h2>\n\n\n\n<p>Kluczowe zalety DevOps Pipelines dla D365 F&amp;O w ramach obszaru, kt\u00f3rym si\u0119 zajmuj\u0119, to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Bezproblemowa integracja<\/strong> \u2013 DevOps Pipelines bezproblemowo integruje si\u0119 z r\u00f3\u017cnego rodzaju us\u0142ugami LCS i RSAT, oferuj\u0105c ujednolicone \u015brodowisko do zarz\u0105dzania ca\u0142ym cyklem \u017cycia aplikacji. Od kontroli wersji i wsp\u00f3\u0142pracy nad kodem, po automatyczne wdra\u017canie i monitorowanie \u2013 wszystkie etapy rozwoju zorganizujemy w ramach jednej platformy.<\/li>\n\n\n\n<li><strong>Automatyzacja <\/strong>\u2013 konfiguruj\u0105c ci\u0105g\u0142\u0105 integracj\u0119 i ci\u0105g\u0142e wdra\u017canie, mo\u017cesz zautomatyzowa\u0107 proces tworzenia, testowania i wdra\u017cania rozwi\u0105za\u0144 dla D365 F&amp;O. To nie tylko oszcz\u0119dza czas, ale tak\u017ce zmniejsza liczb\u0119 b\u0142\u0119d\u00f3w ludzkich, zapewniaj\u0105c sp\u00f3jn\u0105 jako\u015b\u0107 w ca\u0142ym cyklu rozwoju.<\/li>\n\n\n\n<li><strong>Kontrola wersji i wsp\u00f3\u0142praca<\/strong> \u2013 DevOps Pipelines zapewnia kontrol\u0119 wersji, umo\u017cliwiaj\u0105c wielu deweloperom jednoczesn\u0105 prac\u0119 nad tym samym rozwi\u0105zaniem D365 F&amp;O. Dzi\u0119ki takim funkcjom jak rozga\u0142\u0119zianie, scalanie i \u017c\u0105dania \u015bci\u0105gni\u0119cia, mo\u017cemy skutecznie zarz\u0105dza\u0107 zmianami kodu i promowa\u0107 wsp\u00f3\u0142prac\u0119 mi\u0119dzy cz\u0142onkami zespo\u0142u.<\/li>\n\n\n\n<li><strong>Monitoring metodologii Agile<\/strong> \u2013 DevOps Pipelines bezproblemowo integruje si\u0119 z tablicami, sprintami, wymaganiami, zadaniami etc., umo\u017cliwiaj\u0105c skuteczne zarz\u0105dzanie i \u015bledzenie element\u00f3w pracy, zaleg\u0142o\u015bci, sprint\u00f3w i post\u0119p\u00f3w projektu. Ta integracja zapewnia, \u017ce \u200b\u200bproces rozwoju jest zgodny z metodologiami Agile, u\u0142atwiaj\u0105c przejrzyst\u0105 komunikacj\u0119 i zwi\u0119kszaj\u0105c widoczno\u015b\u0107 projektu.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Og\u00f3lne korzy\u015bci Pipeline Devops<\/strong><\/h2>\n\n\n\n<p>Organizacje, kt\u00f3re pomy\u015blnie zaprojektuj\u0105 i wdro\u017c\u0105 Pipeline DevOps, w praktyce odczuj\u0105 r\u00f3wnie\u017c korzy\u015bci, kt\u00f3re przybli\u017c\u0119 poni\u017cej.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Szybsze dostarczanie oprogramowania<\/strong><\/h3>\n\n\n\n<p>Pipeline DevOps zosta\u0142 zaprojektowany w celu u\u0142atwienia szybszego dostarczania warto\u015bci (zwykle oprogramowania) u\u017cytkownikom ko\u0144cowym za po\u015brednictwem zestawu zautomatyzowanych proces\u00f3w, poprzez narz\u0119dzia, kt\u00f3re umo\u017cliwiaj\u0105 organizacjom szybkie tworzenie, testowanie i dostarczanie oprogramowania oraz praktyki, kt\u00f3re sprzyjaj\u0105 szybkim, przyrostowym zmianom kodu.<\/p>\n\n\n\n<p>Najcz\u0119stszym przyk\u0142adem tego jest CI\/CD, kt\u00f3ry automatyzuje tworzenie, testowanie i dostarczanie oprogramowania w Pipeline DevOps, aby umo\u017cliwi\u0107 szybsze dostarczanie oprogramowania.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Bardziej niezawodne i wy\u017cszej jako\u015bci oprogramowanie<\/strong><\/h3>\n\n\n\n<p>Pipeline DevOps zazwyczaj stosuj\u0105 zautomatyzowane testy w ca\u0142ym cyklu wytwarzania oprogramowania zar\u00f3wno pod k\u0105tem funkcjonalno\u015bci jak i bezpiecze\u0144stwa.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Zmniejszenie ryzyka wyst\u0105pienia b\u0142\u0119d\u00f3w<\/strong><\/h3>\n\n\n\n<p>Dzi\u0119ki priorytetowemu traktowaniu konsekwentnie stosowanych, zautomatyzowanych test\u00f3w w ca\u0142ym cyklu \u017cycia oprogramowania, Pipeline DevOps umo\u017cliwia organizacjom zmniejszenie ryzyka wyst\u0105pienia problem\u00f3w i b\u0142\u0119d\u00f3w w oprogramowaniu produkcyjnym. Automatyzacja jest r\u00f3wnie\u017c cz\u0119sto stosowana w przypadku powtarzaj\u0105cych si\u0119 zada\u0144, co mo\u017ce zmniejszy\u0107 ryzyko b\u0142\u0119du ludzkiego.<\/p>\n\n\n\n<p>Ta korzy\u015b\u0107 wynika przede wszystkim z praktyk takich jak CI\/CD, kt\u00f3re wykorzystuj\u0105 automatyzacj\u0119 w celu przyspieszenia dostarczania oprogramowania i zautomatyzowanych test\u00f3w w celu wykrywania potencjalnych problem\u00f3w, gdy tylko zmiany kodu zostan\u0105 zatwierdzone w bazie kodu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Automatyzacja zmniejsza potrzeb\u0119 wykonywania powtarzalnych zada\u0144<\/strong><\/h3>\n\n\n\n<p>Podstawowym elementem ka\u017cdego Pipeline DevOps jest automatyzacja \u017cmudnych zada\u0144, kt\u00f3re mog\u0105 by\u0107 lepiej obs\u0142ugiwane przez komputery. Wprowadza to wi\u0119ksz\u0105 wydajno\u015b\u0107 poprzez zmniejszenie zaanga\u017cowania pracownik\u00f3w w powtarzalne zadania. Umo\u017cliwia r\u00f3wnie\u017c organizacjom kierowanie zasob\u00f3w na tworzenie i dostarczanie oprogramowania, uwalniaj\u0105c jeden z najcenniejszych zasob\u00f3w, jakie maj\u0105 zespo\u0142y programistyczne: czas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Kr\u00f3tsze czasy przegl\u0105du (i szybsze czasy rozwi\u0105zywania problem\u00f3w)<\/strong><\/h3>\n\n\n\n<p>W Pipeline DevOps testy automatyczne s\u0105 stosowane w kluczowych punktach wytwarzania oprogramowania \u2013 zar\u00f3wno w celu oceny funkcjonalno\u015bci, jak i profilu bezpiecze\u0144stwa zmian w kodzie. Ka\u017cda organizacja wdro\u017cy sw\u00f3j w\u0142asny, unikalny zestaw test\u00f3w, ale korzy\u015bci\u0105 netto jest to, \u017ce Pipeline DevOps skraca czas przegl\u0105du nowego kodu.<\/p>\n\n\n\n<p>Pipeline DevOps cz\u0119sto prowadzi r\u00f3wnie\u017c do skr\u00f3cenia czasu rozwi\u0105zywania problem\u00f3w, gdy problemy s\u0105 identyfikowane w kodzie za po\u015brednictwem po\u0142\u0105czenia ci\u0105g\u0142ego monitorowania i raportowania.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Na zako\u0144czenie<\/h2>\n\n\n\n<p>W artykule przedstawi\u0142em definicje i kr\u00f3tki wst\u0119p dotycz\u0105cy automatyzacji zada\u0144, aby przygotowa\u0107 Was na kolejn\u0105 dawk\u0119 wiedzy.<\/p>\n\n\n\n<p>W nast\u0119pnej cz\u0119\u015bci skupi\u0119 si\u0119 na aspektach praktycznych. Zaprezentuj\u0119 u\u017cycie automatyzacji zada\u0144 za pomoc\u0105 Pipeline DevOps na przyk\u0142adzie systemu ERP D365 F&amp;O wdra\u017canego przez moje Centrum Kompetencyjne. Skupi\u0119 si\u0119 na automatyzacji kompilacji i wyda\u0144 wytwarzanego przez nas oprogramowania. Nawi\u0105\u017c\u0119 tak\u017ce do praktycznego zastosowania automatyzacji Pipeline w innych obszarach.<\/p>\n\n\n\n<p>***<\/p>\n\n\n\n<p>Je\u015bli interesuje Ci\u0119 tematyka D365 F&amp;O, zajrzyj koniecznie r\u00f3wnie\u017c do innego artyku\u0142u autora: <a href=\"https:\/\/sii.pl\/blog\/wspolpraca-azure-devops-oraz-d365-fo-usprawnianie-procesow-biznesowych-klienta\/\" target=\"_blank\" aria-label=\"Wsp\u00f3\u0142praca Azure DevOps oraz D365 F&amp;O \u2013 usprawnianie proces\u00f3w biznesowych klienta (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Wsp\u00f3\u0142praca Azure DevOps oraz D365 F&amp;O \u2013 usprawnianie proces\u00f3w biznesowych klienta<\/a><\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;28949&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;12&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;5\\\/5 ( votes: 12)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Automatyzacja pipeline kluczem do sukcesu projekt\u00f3w w DevOps dla D365 F\\u0026amp;O. Cz\u0119\u015b\u0107 I&quot;,&quot;width&quot;:&quot;139.5&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 139.5px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            5\/5 ( votes: 12)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Pipeline DevOps to zestaw zautomatyzowanych proces\u00f3w i narz\u0119dzi, kt\u00f3ry umo\u017cliwia programistom oraz specjalistom ds. wyda\u0144 oprogramowania wsp\u00f3\u0142prac\u0119 przy tworzeniu i &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/automatyzacja-pipeline-kluczem-do-sukcesu-projektow-w-devops-dla-d365-fo-czesc-i\/\">Continued<\/a><\/p>\n","protected":false},"author":156,"featured_media":28952,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1316],"tags":[2656,2655,2654,1546,686],"class_list":["post-28949","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-miekko","tag-pipeline-devops","tag-ci-cd","tag-d365-fo","tag-przeglad-narzedzi","tag-azure-devops"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/09\/Automatyzacja-pipeline-kluczem-do-sukcesu-projektow-w-DevOps-dla-D365-FO.-Czesc-I.jpg","category_names":["Development na mi\u0119kko"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/28949"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/156"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=28949"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/28949\/revisions"}],"predecessor-version":[{"id":28956,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/28949\/revisions\/28956"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/28952"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=28949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=28949"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=28949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}