{"id":786,"date":"2022-02-16T08:59:43","date_gmt":"2022-02-16T07:59:43","guid":{"rendered":"https:\/\/wojciechsiwek.pl\/?p=786"},"modified":"2025-02-02T11:13:08","modified_gmt":"2025-02-02T10:13:08","slug":"zasada-otwarte-zamkniete","status":"publish","type":"post","link":"https:\/\/wojciechsiwek.pl\/en\/zasada-otwarte-zamkniete\/","title":{"rendered":"Open-Closed Principle"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis Tre\u015bci<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a8d0f641fa19\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a8d0f641fa19\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/wojciechsiwek.pl\/en\/zasada-otwarte-zamkniete\/#Troche_teorii\" >Some theory<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/wojciechsiwek.pl\/en\/zasada-otwarte-zamkniete\/#Troche_kodu\" >Some code<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/wojciechsiwek.pl\/en\/zasada-otwarte-zamkniete\/#Kod_niewlasciwy\" >Invalid code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/wojciechsiwek.pl\/en\/zasada-otwarte-zamkniete\/#Kod_poprawny\" >Valid code<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/wojciechsiwek.pl\/en\/zasada-otwarte-zamkniete\/#Podsumowanie\" >Summary<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"troche-teorii\"><span class=\"ez-toc-section\" id=\"Troche_teorii\"><\/span>Some theory<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Another rule under the letter \"O\" in the acronym SOLID is the title open-closed rule. The content of the rule is very simple and seems downright trivial:<\/p>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p>Software components such as modules, classes or functions should be open to extension and at the same time closed to modifications.<\/p><\/blockquote><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Before giving an example, I will briefly write about why this principle is important. Writing software very often requires introducing various changes. They result from a change in business logic or the need to refactor the code. If the introduction of a new functionality requires significant changes to the code, it may turn out that another person using the functionality elsewhere will lose it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"troche-kodu\"><span class=\"ez-toc-section\" id=\"Troche_kodu\"><\/span>Some code<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"kod-niewlasciwy\"><span class=\"ez-toc-section\" id=\"Kod_niewlasciwy\"><\/span>Invalid code<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Let's follow an example of the code that counts the figure's square. First, an example of a code that breaks the open-closed principle. We create a class of a triangle and then a class that counts the area of the figure.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-java\" data-line=\"\">public class Triangle {\n    public float baseLength;\n    public float height;\n}<\/code><\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-java\" data-line=\"\">public class AreaCalculator {\n    public float calculateTriangleArea(Triangle triangle) {\n        return triangle.baseLength * triangle.height \/ 2;\n    }\n}<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Our app works great, but there was a need to add the option to count the area of the circle. We add the class of the circle, then we need to make a change to the class calculating the area of the new figure, and at this point we break the open-closed principle. Our code looks like this:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-java\" data-line=\"\">public class Triangle {\n    public float baseLength;\n    public float height;\n}\n\npublic class Circle {\n    public float radius;\n}<\/code><\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-java\" data-line=\"\">public class AreaCalculator{\n\n    public float calculateTriangleArea(Triangle triangle) {\n        return triangle.baseLength * triangle.height \/ 2;\n    }\n\n    public float calculateCircleArea(Circle circle) {\n        return 3.14 * circle.radius * circle.radius;\n    }\n}<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Note that adding a new figure forces the modification of another existing class and the implementation of a new method of calculating the area. Let's write our program differently.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"kod-poprawny\"><span class=\"ez-toc-section\" id=\"Kod_poprawny\"><\/span>Valid code<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In order to avoid breaking the rule, it is enough to create an interface that will contain a method of calculating the area. Next, let's establish that each new figure will implement this interface. Then our code will look like this:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-java\" data-line=\"\">public interface Shape {\n    public float calculateArea();\n}\n\npublic class Triangle implements Shape {\n    public float baseLength;\n    public float height;\n\n    public double calculateArea() {\n        return baseLength * height \/ 2;\n    }\n}\n\npublic class Circle implements Shape {\n    public float radius;\n\n    public float calculateArea() {\n        return 3.14 * radius * radius;\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This construction allows us to create a calculator that does not require any interference when adding further figures:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-java\" data-line=\"\">public class AreaCalculator {\n    public float calculateShapeArea(Shape shape) {\n        return shape.calculateArea();\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">It can therefore be concluded that our calculator is closed to modification and open to extension.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"podsumowanie\"><span class=\"ez-toc-section\" id=\"Podsumowanie\"><\/span>Summary<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">As you can see, this principle, although apparently simple, is not so obvious in implementation. Sometimes it requires foreseeing potential directions of program development, as well as the ability to distinguish various abstractions. Feel free to read the other <a href=\"https:\/\/wojciechsiwek.pl\/en\/tag\/solid\/\" target=\"_self\"> articles <\/a> about the SOLID principles.<\/p>","protected":false},"excerpt":{"rendered":"<p>The principle behind the letter \"O\" in the acronym SOLID is the open-closed principle. Learn the definition and example in Java.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"[\"title\",\"meta\",\"tags\",\"content\",\"post-navigation\",\"comments\"]","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[26],"tags":[25,77],"class_list":["post-786","post","type-post","status-publish","format-standard","hentry","category-programowanie","tag-java","tag-solid"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Zasada otwarte-zamkni\u0119te &#8211; Wojciech Siwek<\/title>\n<meta name=\"description\" content=\"Zasad\u0105 kryj\u0105c\u0105 si\u0119 pod literk\u0105 &quot;O&quot; w akronimie SOLID jest zasada otwarte-zamkni\u0119te. &#8211; Poznaj definicj\u0119 i przyk\u0142ad w Javie.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wojciechsiwek.pl\/en\/zasada-otwarte-zamkniete\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Zasada otwarte-zamkni\u0119te &#8211; Wojciech Siwek\" \/>\n<meta property=\"og:description\" content=\"Zasad\u0105 kryj\u0105c\u0105 si\u0119 pod literk\u0105 &quot;O&quot; w akronimie SOLID jest zasada otwarte-zamkni\u0119te. &#8211; Poznaj definicj\u0119 i przyk\u0142ad w Javie.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wojciechsiwek.pl\/en\/zasada-otwarte-zamkniete\/\" \/>\n<meta property=\"og:site_name\" content=\"Wojciech Siwek\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-16T07:59:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-02T10:13:08+00:00\" \/>\n<meta name=\"author\" content=\"Wojciech Siwek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Wojciech Siwek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wojciechsiwek.pl\\\/zasada-otwarte-zamkniete\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wojciechsiwek.pl\\\/zasada-otwarte-zamkniete\\\/\"},\"author\":{\"name\":\"Wojciech Siwek\",\"@id\":\"http:\\\/\\\/wojciechsiwek.pl\\\/#\\\/schema\\\/person\\\/eb4246ee83fb20ed02fc723e28258677\"},\"headline\":\"Zasada otwarte-zamkni\u0119te\",\"datePublished\":\"2022-02-16T07:59:43+00:00\",\"dateModified\":\"2025-02-02T10:13:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wojciechsiwek.pl\\\/zasada-otwarte-zamkniete\\\/\"},\"wordCount\":352,\"publisher\":{\"@id\":\"http:\\\/\\\/wojciechsiwek.pl\\\/#\\\/schema\\\/person\\\/eb4246ee83fb20ed02fc723e28258677\"},\"keywords\":[\"java\",\"SOLID\"],\"articleSection\":[\"Programowanie\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wojciechsiwek.pl\\\/zasada-otwarte-zamkniete\\\/\",\"url\":\"https:\\\/\\\/wojciechsiwek.pl\\\/zasada-otwarte-zamkniete\\\/\",\"name\":\"Zasada otwarte-zamkni\u0119te &#8211; Wojciech Siwek\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/wojciechsiwek.pl\\\/#website\"},\"datePublished\":\"2022-02-16T07:59:43+00:00\",\"dateModified\":\"2025-02-02T10:13:08+00:00\",\"description\":\"Zasad\u0105 kryj\u0105c\u0105 si\u0119 pod literk\u0105 \\\"O\\\" w akronimie SOLID jest zasada otwarte-zamkni\u0119te. &#8211; Poznaj definicj\u0119 i przyk\u0142ad w Javie.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wojciechsiwek.pl\\\/zasada-otwarte-zamkniete\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wojciechsiwek.pl\\\/zasada-otwarte-zamkniete\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wojciechsiwek.pl\\\/zasada-otwarte-zamkniete\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\\\/\\\/wojciechsiwek.pl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Zasada otwarte-zamkni\u0119te\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/wojciechsiwek.pl\\\/#website\",\"url\":\"http:\\\/\\\/wojciechsiwek.pl\\\/\",\"name\":\"Wojciech Siwek\",\"description\":\"Programista na pocz\u0105tku swojej \u015bcie\u017cki w IT\",\"publisher\":{\"@id\":\"http:\\\/\\\/wojciechsiwek.pl\\\/#\\\/schema\\\/person\\\/eb4246ee83fb20ed02fc723e28258677\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/wojciechsiwek.pl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\\\/\\\/wojciechsiwek.pl\\\/#\\\/schema\\\/person\\\/eb4246ee83fb20ed02fc723e28258677\",\"name\":\"Wojciech Siwek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/wojciechsiwek.pl\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/cropped-logo.png\",\"url\":\"https:\\\/\\\/wojciechsiwek.pl\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/cropped-logo.png\",\"contentUrl\":\"https:\\\/\\\/wojciechsiwek.pl\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/cropped-logo.png\",\"width\":313,\"height\":306,\"caption\":\"Wojciech Siwek\"},\"logo\":{\"@id\":\"https:\\\/\\\/wojciechsiwek.pl\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/cropped-logo.png\"},\"sameAs\":[\"https:\\\/\\\/wojciechsiwek.pl\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Zasada otwarte-zamkni\u0119te &#8211; Wojciech Siwek","description":"Zasad\u0105 kryj\u0105c\u0105 si\u0119 pod literk\u0105 \"O\" w akronimie SOLID jest zasada otwarte-zamkni\u0119te. &#8211; Poznaj definicj\u0119 i przyk\u0142ad w Javie.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wojciechsiwek.pl\/en\/zasada-otwarte-zamkniete\/","og_locale":"en_GB","og_type":"article","og_title":"Zasada otwarte-zamkni\u0119te &#8211; Wojciech Siwek","og_description":"Zasad\u0105 kryj\u0105c\u0105 si\u0119 pod literk\u0105 \"O\" w akronimie SOLID jest zasada otwarte-zamkni\u0119te. &#8211; Poznaj definicj\u0119 i przyk\u0142ad w Javie.","og_url":"https:\/\/wojciechsiwek.pl\/en\/zasada-otwarte-zamkniete\/","og_site_name":"Wojciech Siwek","article_published_time":"2022-02-16T07:59:43+00:00","article_modified_time":"2025-02-02T10:13:08+00:00","author":"Wojciech Siwek","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Wojciech Siwek","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wojciechsiwek.pl\/zasada-otwarte-zamkniete\/#article","isPartOf":{"@id":"https:\/\/wojciechsiwek.pl\/zasada-otwarte-zamkniete\/"},"author":{"name":"Wojciech Siwek","@id":"http:\/\/wojciechsiwek.pl\/#\/schema\/person\/eb4246ee83fb20ed02fc723e28258677"},"headline":"Zasada otwarte-zamkni\u0119te","datePublished":"2022-02-16T07:59:43+00:00","dateModified":"2025-02-02T10:13:08+00:00","mainEntityOfPage":{"@id":"https:\/\/wojciechsiwek.pl\/zasada-otwarte-zamkniete\/"},"wordCount":352,"publisher":{"@id":"http:\/\/wojciechsiwek.pl\/#\/schema\/person\/eb4246ee83fb20ed02fc723e28258677"},"keywords":["java","SOLID"],"articleSection":["Programowanie"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/wojciechsiwek.pl\/zasada-otwarte-zamkniete\/","url":"https:\/\/wojciechsiwek.pl\/zasada-otwarte-zamkniete\/","name":"Zasada otwarte-zamkni\u0119te &#8211; Wojciech Siwek","isPartOf":{"@id":"http:\/\/wojciechsiwek.pl\/#website"},"datePublished":"2022-02-16T07:59:43+00:00","dateModified":"2025-02-02T10:13:08+00:00","description":"Zasad\u0105 kryj\u0105c\u0105 si\u0119 pod literk\u0105 \"O\" w akronimie SOLID jest zasada otwarte-zamkni\u0119te. &#8211; Poznaj definicj\u0119 i przyk\u0142ad w Javie.","breadcrumb":{"@id":"https:\/\/wojciechsiwek.pl\/zasada-otwarte-zamkniete\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wojciechsiwek.pl\/zasada-otwarte-zamkniete\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wojciechsiwek.pl\/zasada-otwarte-zamkniete\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/wojciechsiwek.pl\/"},{"@type":"ListItem","position":2,"name":"Zasada otwarte-zamkni\u0119te"}]},{"@type":"WebSite","@id":"http:\/\/wojciechsiwek.pl\/#website","url":"http:\/\/wojciechsiwek.pl\/","name":"Wojciech Siwek","description":"Software developer at the beginning of his career in IT","publisher":{"@id":"http:\/\/wojciechsiwek.pl\/#\/schema\/person\/eb4246ee83fb20ed02fc723e28258677"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/wojciechsiwek.pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"http:\/\/wojciechsiwek.pl\/#\/schema\/person\/eb4246ee83fb20ed02fc723e28258677","name":"Wojciech Siwek","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/wojciechsiwek.pl\/wp-content\/uploads\/2021\/03\/cropped-logo.png","url":"https:\/\/wojciechsiwek.pl\/wp-content\/uploads\/2021\/03\/cropped-logo.png","contentUrl":"https:\/\/wojciechsiwek.pl\/wp-content\/uploads\/2021\/03\/cropped-logo.png","width":313,"height":306,"caption":"Wojciech Siwek"},"logo":{"@id":"https:\/\/wojciechsiwek.pl\/wp-content\/uploads\/2021\/03\/cropped-logo.png"},"sameAs":["https:\/\/wojciechsiwek.pl"]}]}},"_links":{"self":[{"href":"https:\/\/wojciechsiwek.pl\/en\/wp-json\/wp\/v2\/posts\/786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wojciechsiwek.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wojciechsiwek.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wojciechsiwek.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wojciechsiwek.pl\/en\/wp-json\/wp\/v2\/comments?post=786"}],"version-history":[{"count":8,"href":"https:\/\/wojciechsiwek.pl\/en\/wp-json\/wp\/v2\/posts\/786\/revisions"}],"predecessor-version":[{"id":795,"href":"https:\/\/wojciechsiwek.pl\/en\/wp-json\/wp\/v2\/posts\/786\/revisions\/795"}],"wp:attachment":[{"href":"https:\/\/wojciechsiwek.pl\/en\/wp-json\/wp\/v2\/media?parent=786"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wojciechsiwek.pl\/en\/wp-json\/wp\/v2\/categories?post=786"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wojciechsiwek.pl\/en\/wp-json\/wp\/v2\/tags?post=786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}