{"id":710,"date":"2018-06-05T14:35:02","date_gmt":"2018-06-05T14:35:02","guid":{"rendered":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/?p=710"},"modified":"2020-12-08T16:57:19","modified_gmt":"2020-12-08T16:57:19","slug":"mocks-in-the-test-environment-part-1","status":"publish","type":"post","link":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/","title":{"rendered":"Mocks in the test environment (Part 1)"},"content":{"rendered":"\n<p>The complexity and interaction of software applications used in companies has increased dramatically in recent years. When releases are rolled out today, some of the new functions are related to the exchange of data with other applications. We also notice this in software testing: The focus of testing has expanded from pure system testing to the area of integration testing. Therefore, mocks are also used.<\/p>\n\n\n\n<p>We work in a test centre and carry out the comprehensive integration test for our customers on their complex application infrastructure. Therefore, we build the test environments to match the productive environment. So why do we need mocks if the integration test environment already has all software components?<\/p>\n\n\n\n<p>This way of thinking is partly correct, but different focuses are set on the different staging levels during testing. Mocks are used less in system testing, since this is where the software functions are tested. Instead, mocks are more often used in integration testing. However, since it is not always possible to test the complete message flow, communication at the interface is tested as an alternative.<\/p>\n\n\n\n<p>If 3 components are tested in the integration test, which are located directly one after the other in the message flow, it cannot be guaranteed one hundred percent that the procedure will run without problems when using all 3 software components. It is possible that the respective errors of the components could falsify the message flow and be corrected afterwards, the error is quasi masked. Therefore, we put mocks at the respective ends of the components to get specific inputs and outputs.<\/p>\n\n\n\n<p>To explain the described problems and peculiarities of a mock, we use a residual service as the application to be tested. The Rest-Service should be able to perform a GET and a POST command. If our component would now ask the mock for personal data with a GET command, we could configure our mock to return standardized answers or perform simple calculations on POST commands.<\/p>\n\n\n\n<p>Using Microsoft Visual Studio, you could quickly create a WebAPI project in C# that has the basic function of a rest service. The methods of the controller only have to be adapted and you have a working Rest-API available.<\/p>\n\n\n\n<p>File &gt; New &gt; Project &gt; Visual C# &gt; Web &gt; Web Application<\/p>\n\n\n\n<p>If you look at the WebAPI controllers, you can see that certain URLs call functions within the API. In this example we use a small WebAPI that is used as a hero database.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Route(\"api\/hero\/get\")]\n&#91;HttpGet]\npublic Iherolist Get()\n{\n    Console.WriteLine(\"Return of all heroes of the database\"); \n    return heroRepository.GetAllHeroes();\n    \n}\n\n&#91;Route(\"api\/hero\/add\")]\n&#91;HttpPost]\npublic string AddHeroDetails(&#91;FromBody]Hero hero)\n{\n    \/\/AddHeroToDatabase(hero);\n    return \"The hero with the name: \" + hero.Name + hero.Klasse + \" has been added\";\n}<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>The route describes the URL path to call the HttpGet(GET command) or HttpPost(POST command) function.<\/p>\n\n\n\n<p>Example: <a href=\"http:localhost\/api\/hero\/add\" target=\"_blank\" rel=\"noreferrer noopener\">http:localhost\/api\/hero\/add<\/a><\/p>\n\n\n\n<p>Once you get the Rest API up and running, you can use an API tool (Postman) or a browser to send different Rest commands to the URL. When a POST command is sent to the Rest API, the service accepts it and recognizes from the URL that the function AddHeldenDetails() should be called. The function takes the sent data and adds it to its database. In response it returns the return value of the function. In this case the confirmation about adding the desired hero.<\/p>\n\n\n\n<p>POST command:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>POST \/api\/hero\/add HTTP\/1.1\nHost: localhost:53521\nContent-Type: application\/x-www-form-urlencoded\nCache-Control: no-cache\nPostman-Token: b169b96f-682d-165d-640f-dbcafe52789e\n{ \u201ename\u201c:\u201cMaria\u201c,\u201cclass\u201c: \u201elord\u201c,\u201cage\u201c:68,\u201clevel\u201c:57 }<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Answer:<\/p>\n\n\n\n<p>The heroine with the name: Maria was added<\/p>\n\n\n\n<p>We have now added the heroine Maria to the database with our POST command. Now you can retrieve the stored heroes with the GET command. Here is an example of the format of the GET command, which is sent to the Rest-API with the corresponding response of the API:<\/p>\n\n\n\n<p>Query:<\/p>\n\n\n\n<p>GET \/api\/hero\/get HTTP\/1.1<br>Host: localhost:53521<br>Content-Type: application\/json<br>Cache-Control: no-cache<br>Postman-Token: b3f19b01-11cf-85f1-100f-2cf175a990d9<\/p>\n\n\n\n<p>Answer:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>{\"theList\":\n&#91;\n    {\"name\":\"Lukas\",\"class\":\"healer\",\"age\":\"25\",\"level\":\"12\"};\n    {\"name\":\"Martin\",\"class\":\"warrior\",\"age\":\"30\",\"level\":\"13\"};\n    {\"name\":\"Gustav\",\"class\":\"thief\",\"age\":\"18\",\"level\":\"19\"};\n    {\"name\":\"Maria\",\"class\":\"lord\",\"age\":\"68\",\"level\":\"57\"};\n]\n}<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>In the answer, you can see that the heroine Maria has been added to the list and can now be called up at any time.<\/p>\n\n\n\n<p>Now we know how the Rest-Services work, which input leads to which output. With this information we can start building a mock. I will deal with this topic in the next part.<\/p>\n\n\n\n<p>That was &#8220;Mocks in the Test Environment Part 1&#8221; &#8230; Part 2 follows \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The complexity and interaction of software applications used in companies has increased dramatically in recent years. Therefore, mocks are also used.<\/p>\n","protected":false},"author":76,"featured_media":751,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[7],"tags":[16,127,290,346,347,349,350,351],"topics":[83],"class_list":["post-710","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-quality-assurance","tag-software-testing","tag-software-tests","tag-rest","tag-mocks","tag-moq","tag-rest-services","tag-rest-api","tag-complex-software","topics-mocks-in-the-test-environment"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Mocks in the test environment (Part 1) - ZEISS Digital Innovation Blog<\/title>\n<meta name=\"description\" content=\"The complexity and interaction of software applications used in companies has increased dramatically in recent years. Therefore, mocks are also used.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mocks in the test environment (Part 1) - ZEISS Digital Innovation Blog\" \/>\n<meta property=\"og:description\" content=\"The complexity and interaction of software applications used in companies has increased dramatically in recent years. Therefore, mocks are also used.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Digital Innovation Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-05T14:35:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-12-08T16:57:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2018\/06\/201806_Mocks_Testumgebung_1_list_en_fi.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1176\" \/>\n\t<meta property=\"og:image:height\" content=\"653\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Neco Giedrojc\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Neco Giedrojc\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/\",\"name\":\"Mocks in the test environment (Part 1) - ZEISS Digital Innovation Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2018\/06\/201806_Mocks_Testumgebung_1_list_en_fi.png\",\"datePublished\":\"2018-06-05T14:35:02+00:00\",\"dateModified\":\"2020-12-08T16:57:19+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/52922d077aabdd8130bc2df264e0cf5b\"},\"description\":\"The complexity and interaction of software applications used in companies has increased dramatically in recent years. Therefore, mocks are also used.\",\"breadcrumb\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/#primaryimage\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2018\/06\/201806_Mocks_Testumgebung_1_list_en_fi.png\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2018\/06\/201806_Mocks_Testumgebung_1_list_en_fi.png\",\"width\":1176,\"height\":653},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mocks in the test environment (Part 1)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/\",\"name\":\"Digital Innovation Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/52922d077aabdd8130bc2df264e0cf5b\",\"name\":\"Neco Giedrojc\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/05\/giedrojc_neco-150x150.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/05\/giedrojc_neco-150x150.jpg\",\"caption\":\"Neco Giedrojc\"},\"description\":\"Shortly after completing his degree in \\\"Computer Engineering\\\", Neco Giedrojc joined the test area of ZEISS Digital Innovation and works there as a tester. In his main project, he is currently dealing with the integration test of complex systems.\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/author\/ennecogiedrojc\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mocks in the test environment (Part 1) - ZEISS Digital Innovation Blog","description":"The complexity and interaction of software applications used in companies has increased dramatically in recent years. Therefore, mocks are also used.","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:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/","og_locale":"en_US","og_type":"article","og_title":"Mocks in the test environment (Part 1) - ZEISS Digital Innovation Blog","og_description":"The complexity and interaction of software applications used in companies has increased dramatically in recent years. Therefore, mocks are also used.","og_url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/","og_site_name":"Digital Innovation Blog","article_published_time":"2018-06-05T14:35:02+00:00","article_modified_time":"2020-12-08T16:57:19+00:00","og_image":[{"width":1176,"height":653,"url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2018\/06\/201806_Mocks_Testumgebung_1_list_en_fi.png","type":"image\/png"}],"author":"Neco Giedrojc","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Neco Giedrojc","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/","name":"Mocks in the test environment (Part 1) - ZEISS Digital Innovation Blog","isPartOf":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/#primaryimage"},"image":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2018\/06\/201806_Mocks_Testumgebung_1_list_en_fi.png","datePublished":"2018-06-05T14:35:02+00:00","dateModified":"2020-12-08T16:57:19+00:00","author":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/52922d077aabdd8130bc2df264e0cf5b"},"description":"The complexity and interaction of software applications used in companies has increased dramatically in recent years. Therefore, mocks are also used.","breadcrumb":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/#primaryimage","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2018\/06\/201806_Mocks_Testumgebung_1_list_en_fi.png","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2018\/06\/201806_Mocks_Testumgebung_1_list_en_fi.png","width":1176,"height":653},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/mocks-in-the-test-environment-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/"},{"@type":"ListItem","position":2,"name":"Mocks in the test environment (Part 1)"}]},{"@type":"WebSite","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/","name":"Digital Innovation Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/52922d077aabdd8130bc2df264e0cf5b","name":"Neco Giedrojc","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/image\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/05\/giedrojc_neco-150x150.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/05\/giedrojc_neco-150x150.jpg","caption":"Neco Giedrojc"},"description":"Shortly after completing his degree in \"Computer Engineering\", Neco Giedrojc joined the test area of ZEISS Digital Innovation and works there as a tester. In his main project, he is currently dealing with the integration test of complex systems.","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/author\/ennecogiedrojc\/"}]}},"author_meta":{"display_name":"Neco Giedrojc","author_link":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/author\/ennecogiedrojc\/"},"featured_img":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2018\/06\/201806_Mocks_Testumgebung_1_list_en_fi-600x333.png","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/quality-assurance\/\" class=\"advgb-post-tax-term\">Quality Assurance<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Quality Assurance<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/quality-assurance\/\" class=\"advgb-post-tax-term\">software testing<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/quality-assurance\/\" class=\"advgb-post-tax-term\">software tests<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/quality-assurance\/\" class=\"advgb-post-tax-term\">REST<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/quality-assurance\/\" class=\"advgb-post-tax-term\">Mocks<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/quality-assurance\/\" class=\"advgb-post-tax-term\">Moq<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/quality-assurance\/\" class=\"advgb-post-tax-term\">REST-Services<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/quality-assurance\/\" class=\"advgb-post-tax-term\">REST-API<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/quality-assurance\/\" class=\"advgb-post-tax-term\">complex software<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">software testing<\/span>","<span class=\"advgb-post-tax-term\">software tests<\/span>","<span class=\"advgb-post-tax-term\">REST<\/span>","<span class=\"advgb-post-tax-term\">Mocks<\/span>","<span class=\"advgb-post-tax-term\">Moq<\/span>","<span class=\"advgb-post-tax-term\">REST-Services<\/span>","<span class=\"advgb-post-tax-term\">REST-API<\/span>","<span class=\"advgb-post-tax-term\">complex software<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 8 years ago","modified":"Updated 5 years ago"},"absolute_dates":{"created":"Posted on June 5, 2018","modified":"Updated on December 8, 2020"},"absolute_dates_time":{"created":"Posted on June 5, 2018 2:35 pm","modified":"Updated on December 8, 2020 4:57 pm"},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts\/710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/users\/76"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/comments?post=710"}],"version-history":[{"count":7,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts\/710\/revisions"}],"predecessor-version":[{"id":1201,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts\/710\/revisions\/1201"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/media\/751"}],"wp:attachment":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/media?parent=710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/categories?post=710"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/tags?post=710"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/topics?post=710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}