{"id":1869,"date":"2020-05-27T10:15:12","date_gmt":"2020-05-27T08:15:12","guid":{"rendered":"http:\/\/web.evertop.pl\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/"},"modified":"2020-10-23T21:00:35","modified_gmt":"2020-10-23T19:00:35","slug":"does-the-programmer-have-a-chance-to-avoid-simple-mistakes","status":"publish","type":"post","link":"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/","title":{"rendered":"Does The Programmer Have a Chance To Avoid Simple Mistakes?"},"content":{"rendered":"<p>I have seen once such a meme: \u201cIf debugging serves to remove errors from the code, programming certainly involves inserting bugs into the code.\u201d There is some truth in it. Modern IT systems implement a lot of very complex processes, it is very easy to make a mistake. The programmer creates a tool that can be used in different cases. Testers and then end users will apply this tool in a way that the author hadn\u2019t even imagined before. Combining this with ordinary human error during software development creates a mix that sooner or later will always \u201cexplode\u201d.<\/p>\n<p>So how should a programmer work so that the effects of his work are not negatively assessed after just a few clicks? Does the programmer have a chance to avoid simple mistakes? I have been creating a business application for companies and institutions for over 15 years. Over the years, I have developed a pattern that allows me to discover many simple errors at an early stage. This is a set of simple tests that significantly increases the quality of the produced software. Applied together with automatic tests (from unit to integration) they give a chance to eliminate many mistakes.<\/p>\n<p>Most consumer applications can be generalized according to the following scheme:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-1734\" src=\"http:\/\/web.evertop.pl\/wp-content\/uploads\/2020\/09\/scheme.png\" alt=\"\" width=\"516\" height=\"459\" srcset=\"https:\/\/www.evertop.pl\/wp-content\/uploads\/2020\/09\/scheme.png 516w, https:\/\/www.evertop.pl\/wp-content\/uploads\/2020\/09\/scheme-300x267.png 300w\" sizes=\"(max-width: 516px) 100vw, 516px\" \/><\/figure>\n<\/div>\n<p>No matter if we create a module of invoices, complaints, orders, reports, users, we can more or less always find the above pattern.<\/p>\n<h3>I wrote the functionality, what\u2019s next?<\/h3>\n<p>The first problem that appears during simple tests performed by the programmer is the approach to the pattern of permissions. The programmer will perform the test using the role with the highest permission. In this way, I want to check if all components are working properly. It is a mistake to stop at such testing. Majority of future users will operate on the minimum permission required. It is worth enriching the basic check of the new functionality with the lowest possible permission to perform a given operation. Such a test allows to:<\/p>\n<ul>\n<li>verify if the system of user rights and roles works properly,<\/li>\n<li>check if items available only to the administrator will be properly hidden or deactivated,<\/li>\n<li>verify whether the lack of administrative data is an obstacle to the application\u2019s operation,<\/li>\n<li>check if, for example, the record passes successfully for a user with the rights different than the administrator\u2019s rights.<\/li>\n<\/ul>\n<p>A perceptive reader will probably immediately think about the roles of users who can do more than the lowest role, but are not administrators. Should the programmer check all possible cases? Yes, because he or she should verify if the settings work for other roles or claims. No, because he or she does not have to log into the system thoroughly for every possible type of user verifying the operation. What about the other cases? Cold calculation of the code and delegation the functionality to a tester allow to eliminate most errors in this area.<\/p>\n<h3>Adding, editing<\/h3>\n<p>The ability to create new and to edit existing elements is the basic functionality of each module. By performing the following simple tests many different cases of application can be verified. When testing a user form (or dedicated API) for creating or editing, it is worth following the path below:<\/p>\n<ul>\n<li>Minimal filling \u2014 only required fields \u2014 allows to check whether such a set of data is really enough?<\/li>\n<li>Maximum filling \u2014 allows you to check if all data are saved?<\/li>\n<li>Boundary conditions for fields \u2014 allows to check if validation works as expected.<\/li>\n<li>Positive test \u2014 allows you to check if the system works for correct data?<\/li>\n<li>Negative test \u2014 allows you to check if the system stops working for incorrect data and correctly informs the user about it?<\/li>\n<li>Save \u2014 allows you to check if the change will actually be saved in a database?<\/li>\n<li>Update \u2014 allows to check if the object will be modified?<\/li>\n<li>Delete \u2014 allows you to check if the object can be deleted?<\/li>\n<li>Navigation \u2014 allows you to check if the transitions are working properly, in the case of the form, you can check it for in and out?<\/li>\n<\/ul>\n<p>It should be a good practice to verify such operations as: saving, modifying or deleting directly on the database. When verifying the record, it is worth verifying that the data is being written to the appropriate columns and whether they are read and displayed correctly. This is to eliminate mistakes in the style of saving the net amount in the place for the gross amount and vice versa.<\/p>\n<p>In the above method it is not possible to check all test cases, but it is possible to check if all the applied mechanisms work. At the testing stage, we should receive the answer whether these mechanisms are working properly.<\/p>\n<h3>The list<\/h3>\n<p>Another very common element to check is the list of elements, the table. Very often it will be a view from which you go to the edit form. Here you can again talk about a simple list of tests that allow for an initial assessment of the programmer\u2019s work effect:<\/p>\n<ul>\n<li>Fetching data \u2014 we check if the data is in each column?<\/li>\n<li>Filtering \/ Searching \u2014 we check if the search engine returns filtered data?<\/li>\n<li>Pagination \u2014 we check if the paging mechanism works, and, whether filtering also works on subsequent pages?<\/li>\n<li>Transitions \u2014 we check if you can go to details etc.?<\/li>\n<li>Going to editing \u2014 allows you to check whether the user will be redirected to the correct record according to his authorization level?<\/li>\n<\/ul>\n<p>At this stage, it is also worth checking if there is a mistake regarding the assignment of data to the appropriate columns in the appropriate format \u2014 here it is very easy to make a mistake.<\/p>\n<h3>The Report, The printout<\/h3>\n<p>All types of printouts, reports, statements are very difficult to test and verify. It is necessary to prepare a set of test data and maintain it at a level adequate to the current state of application development. This will keep the data source in a state that allows you to verify, for example, invoice printout or a sales report over a given period. How to construct such a set of test data:<\/p>\n<ul>\n<li>Minimal \u2014 an object containing only the minimum data necessary for its recording.<\/li>\n<li>Maximum \u2014 an object containing all possible data.<\/li>\n<li>Most common \u2014 an object that contains a set of the most common data if it can be defined.<\/li>\n<li>In a different language version \u2014 at least one object in a different language version if the system provides such a possibility.<\/li>\n<\/ul>\n<p>Because work on e.g. the invoice module can be significantly extended in time, it is also worth updating the status of your own test data set with subsequent system updates. Contrary to appearances, this allows you to significantly save time by being constantly ready for testing.<\/p>\n<h3>Database update<\/h3>\n<p>After preparing the script or package updating the database and running it on the development machine, I strongly recommend that you should do this test also on the test machine. Configuration or server versions may differ between the development environment and the server. Verification of changes is a must.<\/p>\n<h3>Debug \u2014 Release<\/h3>\n<p>We are happy to use conditional compilation. It allows, for example, to write code that will perform the required task step by step \u2014 just in time for the needs of the debugger. This carries the risk of not adapting the code changes to the Release version. Therefore, checking tests should be done in Release mode. Surprisingly, you can do such tests on the programmer\u2019s computer.<\/p>\n<h3>Summary<\/h3>\n<p>Modern systems are very complex and carry out very complex tasks. However, they can be systematized into fragments that can be described as successive CRUD elements. By using the presented set of simple tests you can eliminate many errors. In addition, by testing at a low level of permissions in a production-close environment, you can avoid many unpleasant surprises. I encourage you to create your own list of steps to verify the new code.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have seen once such a meme: \u201cIf debugging serves to remove errors from the code, programming certainly involves inserting bugs into the code.\u201d There is some truth in it. Modern IT systems implement a lot of very complex processes, it is very easy to make a mistake. The programmer creates a tool that can [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[15],"tags":[83,84,85],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Does The Programmer Have a Chance To Avoid Simple Mistakes? - Evertop<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/\" \/>\n<meta property=\"og:locale\" content=\"nb_NO\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Does The Programmer Have a Chance To Avoid Simple Mistakes? - Evertop\" \/>\n<meta property=\"og:description\" content=\"I have seen once such a meme: \u201cIf debugging serves to remove errors from the code, programming certainly involves inserting bugs into the code.\u201d There is some truth in it. Modern IT systems implement a lot of very complex processes, it is very easy to make a mistake. The programmer creates a tool that can [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/\" \/>\n<meta property=\"og:site_name\" content=\"Evertop\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/EvertopPoland\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-27T08:15:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-10-23T19:00:35+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/web.evertop.pl\/wp-content\/uploads\/2020\/05\/pexels-photo-360591-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1020\" \/>\n\t<meta property=\"og:image:height\" content=\"255\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Skrevet av\" \/>\n\t<meta name=\"twitter:data1\" content=\"lpabian\" \/>\n\t<meta name=\"twitter:label2\" content=\"Ansl. lesetid\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.evertop.pl\/#organization\",\"name\":\"Evertop\",\"url\":\"https:\/\/www.evertop.pl\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/EvertopPoland\/\",\"https:\/\/www.linkedin.com\/company\/evertop-software-development\/\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.evertop.pl\/#logo\",\"inLanguage\":\"nb-NO\",\"url\":\"https:\/\/www.evertop.pl\/wp-content\/uploads\/2021\/04\/logo_new.png\",\"contentUrl\":\"https:\/\/www.evertop.pl\/wp-content\/uploads\/2021\/04\/logo_new.png\",\"width\":582,\"height\":114,\"caption\":\"Evertop\"},\"image\":{\"@id\":\"https:\/\/www.evertop.pl\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.evertop.pl\/#website\",\"url\":\"https:\/\/www.evertop.pl\/\",\"name\":\"Evertop\",\"description\":\"we code the future\",\"publisher\":{\"@id\":\"https:\/\/www.evertop.pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.evertop.pl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"nb-NO\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#primaryimage\",\"inLanguage\":\"nb-NO\",\"url\":\"http:\/\/web.evertop.pl\/wp-content\/uploads\/2020\/09\/scheme.png\",\"contentUrl\":\"http:\/\/web.evertop.pl\/wp-content\/uploads\/2020\/09\/scheme.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#webpage\",\"url\":\"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/\",\"name\":\"Does The Programmer Have a Chance To Avoid Simple Mistakes? - Evertop\",\"isPartOf\":{\"@id\":\"https:\/\/www.evertop.pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#primaryimage\"},\"datePublished\":\"2020-05-27T08:15:12+00:00\",\"dateModified\":\"2020-10-23T19:00:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#breadcrumb\"},\"inLanguage\":\"nb-NO\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\\u0142\\u00f3wna\",\"item\":\"https:\/\/www.evertop.pl\/no\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Does The Programmer Have a Chance To Avoid Simple Mistakes?\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.evertop.pl\/#\/schema\/person\/7fa9c3dddc7eabfad26b496cb9a97628\"},\"headline\":\"Does The Programmer Have a Chance To Avoid Simple Mistakes?\",\"datePublished\":\"2020-05-27T08:15:12+00:00\",\"dateModified\":\"2020-10-23T19:00:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#webpage\"},\"wordCount\":1324,\"publisher\":{\"@id\":\"https:\/\/www.evertop.pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/web.evertop.pl\/wp-content\/uploads\/2020\/09\/scheme.png\",\"keywords\":[\"bugs\",\"code review\",\"code test\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"nb-NO\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.evertop.pl\/#\/schema\/person\/7fa9c3dddc7eabfad26b496cb9a97628\",\"name\":\"lpabian\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.evertop.pl\/#personlogo\",\"inLanguage\":\"nb-NO\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/330a0a7408b1711d2acb1b0cb39b7e2d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/330a0a7408b1711d2acb1b0cb39b7e2d?s=96&d=mm&r=g\",\"caption\":\"lpabian\"},\"sameAs\":[\"http:\/\/web.evertop.pl\"],\"url\":\"https:\/\/www.evertop.pl\/no\/author\/lpabian\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Does The Programmer Have a Chance To Avoid Simple Mistakes? - Evertop","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:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/","og_locale":"nb_NO","og_type":"article","og_title":"Does The Programmer Have a Chance To Avoid Simple Mistakes? - Evertop","og_description":"I have seen once such a meme: \u201cIf debugging serves to remove errors from the code, programming certainly involves inserting bugs into the code.\u201d There is some truth in it. Modern IT systems implement a lot of very complex processes, it is very easy to make a mistake. The programmer creates a tool that can [&hellip;]","og_url":"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/","og_site_name":"Evertop","article_publisher":"https:\/\/www.facebook.com\/EvertopPoland\/","article_published_time":"2020-05-27T08:15:12+00:00","article_modified_time":"2020-10-23T19:00:35+00:00","og_image":[{"width":1020,"height":255,"url":"http:\/\/web.evertop.pl\/wp-content\/uploads\/2020\/05\/pexels-photo-360591-1.jpg","path":"\/home\/evertop\/web-evertop\/wp-content\/uploads\/2020\/05\/pexels-photo-360591-1.jpg","size":"full","id":1736,"alt":"","pixels":260100,"type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Skrevet av":"lpabian","Ansl. lesetid":"7 minutter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.evertop.pl\/#organization","name":"Evertop","url":"https:\/\/www.evertop.pl\/","sameAs":["https:\/\/www.facebook.com\/EvertopPoland\/","https:\/\/www.linkedin.com\/company\/evertop-software-development\/"],"logo":{"@type":"ImageObject","@id":"https:\/\/www.evertop.pl\/#logo","inLanguage":"nb-NO","url":"https:\/\/www.evertop.pl\/wp-content\/uploads\/2021\/04\/logo_new.png","contentUrl":"https:\/\/www.evertop.pl\/wp-content\/uploads\/2021\/04\/logo_new.png","width":582,"height":114,"caption":"Evertop"},"image":{"@id":"https:\/\/www.evertop.pl\/#logo"}},{"@type":"WebSite","@id":"https:\/\/www.evertop.pl\/#website","url":"https:\/\/www.evertop.pl\/","name":"Evertop","description":"we code the future","publisher":{"@id":"https:\/\/www.evertop.pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.evertop.pl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"nb-NO"},{"@type":"ImageObject","@id":"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#primaryimage","inLanguage":"nb-NO","url":"http:\/\/web.evertop.pl\/wp-content\/uploads\/2020\/09\/scheme.png","contentUrl":"http:\/\/web.evertop.pl\/wp-content\/uploads\/2020\/09\/scheme.png"},{"@type":"WebPage","@id":"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#webpage","url":"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/","name":"Does The Programmer Have a Chance To Avoid Simple Mistakes? - Evertop","isPartOf":{"@id":"https:\/\/www.evertop.pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#primaryimage"},"datePublished":"2020-05-27T08:15:12+00:00","dateModified":"2020-10-23T19:00:35+00:00","breadcrumb":{"@id":"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#breadcrumb"},"inLanguage":"nb-NO","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/www.evertop.pl\/no\/"},{"@type":"ListItem","position":2,"name":"Does The Programmer Have a Chance To Avoid Simple Mistakes?"}]},{"@type":"Article","@id":"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#article","isPartOf":{"@id":"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#webpage"},"author":{"@id":"https:\/\/www.evertop.pl\/#\/schema\/person\/7fa9c3dddc7eabfad26b496cb9a97628"},"headline":"Does The Programmer Have a Chance To Avoid Simple Mistakes?","datePublished":"2020-05-27T08:15:12+00:00","dateModified":"2020-10-23T19:00:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#webpage"},"wordCount":1324,"publisher":{"@id":"https:\/\/www.evertop.pl\/#organization"},"image":{"@id":"https:\/\/www.evertop.pl\/no\/does-the-programmer-have-a-chance-to-avoid-simple-mistakes\/#primaryimage"},"thumbnailUrl":"http:\/\/web.evertop.pl\/wp-content\/uploads\/2020\/09\/scheme.png","keywords":["bugs","code review","code test"],"articleSection":["Blog"],"inLanguage":"nb-NO"},{"@type":"Person","@id":"https:\/\/www.evertop.pl\/#\/schema\/person\/7fa9c3dddc7eabfad26b496cb9a97628","name":"lpabian","image":{"@type":"ImageObject","@id":"https:\/\/www.evertop.pl\/#personlogo","inLanguage":"nb-NO","url":"https:\/\/secure.gravatar.com\/avatar\/330a0a7408b1711d2acb1b0cb39b7e2d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/330a0a7408b1711d2acb1b0cb39b7e2d?s=96&d=mm&r=g","caption":"lpabian"},"sameAs":["http:\/\/web.evertop.pl"],"url":"https:\/\/www.evertop.pl\/no\/author\/lpabian\/"}]}},"_links":{"self":[{"href":"https:\/\/www.evertop.pl\/no\/wp-json\/wp\/v2\/posts\/1869"}],"collection":[{"href":"https:\/\/www.evertop.pl\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.evertop.pl\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.evertop.pl\/no\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.evertop.pl\/no\/wp-json\/wp\/v2\/comments?post=1869"}],"version-history":[{"count":1,"href":"https:\/\/www.evertop.pl\/no\/wp-json\/wp\/v2\/posts\/1869\/revisions"}],"predecessor-version":[{"id":1952,"href":"https:\/\/www.evertop.pl\/no\/wp-json\/wp\/v2\/posts\/1869\/revisions\/1952"}],"wp:attachment":[{"href":"https:\/\/www.evertop.pl\/no\/wp-json\/wp\/v2\/media?parent=1869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.evertop.pl\/no\/wp-json\/wp\/v2\/categories?post=1869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.evertop.pl\/no\/wp-json\/wp\/v2\/tags?post=1869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}