{"id":10115,"date":"2016-06-01T16:51:53","date_gmt":"2016-06-01T14:51:53","guid":{"rendered":"https:\/\/blog.zhaw.ch\/icclab\/?p=10115"},"modified":"2016-06-02T09:15:32","modified_gmt":"2016-06-02T07:15:32","slug":"release-of-netflogi-a-graphical-interface-for-netfloc","status":"publish","type":"post","link":"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/","title":{"rendered":"Release of Netflogi &#8211; a Graphical Interface for Netfloc"},"content":{"rendered":"<p>In the past year i was working on a <a href=\"https:\/\/blog.zhaw.ch\/icclab\/gui-for-netfloc\/\">graphical interface for Netfloc<\/a>\u00a0&#8211; the SDK for SDN\u00a0developed in the <a href=\"https:\/\/blog.zhaw.ch\/icclab\/category\/research-approach\/themes\/software-defined-networking-for-clouds\/\">SDN initiative<\/a>.\u00a0Just to remind you, the aim of Netflogi is to: (1) make the SDK itself easy to use and (2) expose the Netfloc\u00a0APIs and functional features to the network application developers and datacenter service providers.<\/p>\n<p>With the initial version of Netflogi, the user was able to create a Service Function Chain only by using Neutron port IDs. This was done by choosing the number and the order of the Neutron ports used in the Chain.\u00a0The current version of Netflogi allows to create Virtual Network Functions (VNFs) and a Service Chain using those VNFs. This blog post describes the updated functionalities of Netflogi that take part of the development work i did as part of my final exam, called\u00a0<a href=\"https:\/\/www.pkorg.ch\/informatik\/\">IPA in Switzerland<\/a>.<\/p>\n<p>The novel functionality added in Netflogi is the VNF management (create &amp; delete). Creating VNF includes choosing a name, a description of the functionality and assigning ingress and egress ports. Once the VNF is successfully created, it appears automatically in the list of the existing VNFs. The VNFs can be used in different services offered by Netfloc. Currently Service Function Chaining is fully implemented and can be done by combining one or more VNFs. The VNFs can be deleted, as well as the Service Chains. Help page and messaging system for the performed actions is also included in this version.<\/p>\n<p><!--more--><\/p>\n<p><b>Features of the new version:<\/b><\/p>\n<ul>\n<li>VNFs list<\/li>\n<li>Create VNF<\/li>\n<li>Create Service Chain<\/li>\n<li>Delete VNF &amp; delete SFC<\/li>\n<li>New GUI elements<\/li>\n<li>Help Page<\/li>\n<\/ul>\n<p>Figure 1 shows the system architecture diagram including the building blocks of the GUI and their interfaces with the OpenStack services and Netfloc.<\/p>\n<p><a href=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-10141 aligncenter\" src=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram-282x300.png\" alt=\"netflogi_diagram\" width=\"285\" height=\"302\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram-282x300.png 282w, https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram.png 445w\" sizes=\"auto, (max-width: 285px) 100vw, 285px\" \/><\/a><\/p>\n<p style=\"text-align: center\">Figure 1: Netflogi diagram<\/p>\n<p>Netflogi includes a Server that manages the REST HTTP requests for VNF and chain management. The data model is shown in Figure 2.<\/p>\n<p><a href=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/neflogi_uml.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-10140 aligncenter\" src=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/neflogi_uml-295x300.png\" alt=\"neflogi_uml\" width=\"394\" height=\"400\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/neflogi_uml-295x300.png 295w, https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/neflogi_uml.png 560w\" sizes=\"auto, (max-width: 394px) 100vw, 394px\" \/><\/a><\/p>\n<p style=\"text-align: center\">Figure 2: Netflogi data model<\/p>\n<p>Every Neutron port has a fixed IP consisting of one or multiple subnet IDs and IP addresses. To create a VNF, the user has to give a name and the description, as well as associate two Neutron ports as ingress and egress ports for the traffic. Chain creation is available out of two or more VNFs.<br \/>\nThe frontend is implemented using JavaScript, AngularJS, and NodeJS for the Web-server. The views and the templates are implemented using HTML and CSS. Error handling is done via Bootstrap alert messages.<\/p>\n<p>Following is a sneak peak from the VNF and SFC views form Netflogi.<\/p>\n<p>Figure 3 shows the popup window for creating VNF. The user can\u00a0create a VNF from <em>Services-&gt;Service Function Chaining<\/em>\u00a0menu.\u00a0One or multiple selected VNFs can be deleted.<br \/>\n<a href=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_vnf_create.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-10144 aligncenter\" src=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_vnf_create-300x283.png\" alt=\"netflogi_vnf_create\" width=\"637\" height=\"602\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_vnf_create-300x283.png 300w, https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_vnf_create-768x725.png 768w, https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_vnf_create-318x300.png 318w, https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_vnf_create.png 840w\" sizes=\"auto, (max-width: 637px) 100vw, 637px\" \/><\/a><\/p>\n<p style=\"text-align: center\">Figure 3: Netflogi view for VNF creation<\/p>\n<p>Image 4 presents Service Function Chaining view. To create a service chain, the user can choose the number and the order of VNFs as they appear in the chain.<\/p>\n<p><a href=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_sfc_create.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-10142 aligncenter\" src=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_sfc_create-300x194.png\" alt=\"netflogi_sfc_create\" width=\"657\" height=\"434\" \/><\/a><\/p>\n<p style=\"text-align: center\">Figure 4: Netflogi view for SFC creation<\/p>\n<p>Finally it was fun working on\u00a0Netflogi, especially that it brought a useful tool for the ICCLab and all SDN crowd out there who is bored of terminals for managing their SDN services. Just to note that Netflogi is yet a project\u00a0<span style=\"line-height: 1.625\">under development. It has a modular design, so that the functionality can be easily extended with new views and templates on demand. Here is the <a href=\"https:\/\/github.com\/icclab\/netflogi\">github repository<\/a>. All contributions are welcomed.<\/span><\/p>\n<div class=\"pt-sm\">Schlagw\u00f6rter: <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/gui\/\">GUI<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/netfloc\/\">netfloc<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/netflogi\/\">netflogi<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/sdk4sdn\/\">SDK4SDN<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/sdn\/\">SDN<\/a><br><\/div>","protected":false},"excerpt":{"rendered":"<p>In the past year i was working on a graphical interface for Netfloc\u00a0&#8211; the SDK for SDN\u00a0developed in the SDN initiative.\u00a0Just to remind you, the aim of Netflogi is to: (1) make the SDK itself easy to use and (2) expose the Netfloc\u00a0APIs and functional features to the network application developers and datacenter service providers. [&hellip;]<\/p>\n","protected":false},"author":232,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[1],"tags":[750,784,785,463,293],"features":[],"class_list":["post-10115","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-gui","tag-netfloc","tag-netflogi","tag-sdk4sdn","tag-sdn"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Release of Netflogi - a Graphical Interface for Netfloc - Service Engineering (ICCLab &amp; SPLab)<\/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:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Release of Netflogi - a Graphical Interface for Netfloc\" \/>\n<meta property=\"og:description\" content=\"In the past year i was working on a graphical interface for Netfloc\u00a0&#8211; the SDK for SDN\u00a0developed in the SDN initiative.\u00a0Just to remind you, the aim of Netflogi is to: (1) make the SDK itself easy to use and (2) expose the Netfloc\u00a0APIs and functional features to the network application developers and datacenter service providers. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/\" \/>\n<meta property=\"og:site_name\" content=\"Service Engineering (ICCLab &amp; SPLab)\" \/>\n<meta property=\"article:published_time\" content=\"2016-06-01T14:51:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-06-02T07:15:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram-282x300.png\" \/>\n<meta name=\"author\" content=\"delv\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"delv\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. 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:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/\"},\"author\":{\"name\":\"delv\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/0c2544d7c31f44ae2a35d698e49fa577\"},\"headline\":\"Release of Netflogi &#8211; a Graphical Interface for Netfloc\",\"datePublished\":\"2016-06-01T14:51:53+00:00\",\"dateModified\":\"2016-06-02T07:15:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/\"},\"wordCount\":568,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram-282x300.png\",\"keywords\":[\"GUI\",\"netfloc\",\"netflogi\",\"SDK4SDN\",\"SDN\"],\"articleSection\":[\"*.*\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/\",\"name\":\"Release of Netflogi - a Graphical Interface for Netfloc - Service Engineering (ICCLab &amp; SPLab)\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram-282x300.png\",\"datePublished\":\"2016-06-01T14:51:53+00:00\",\"dateModified\":\"2016-06-02T07:15:32+00:00\",\"author\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/0c2544d7c31f44ae2a35d698e49fa577\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#primaryimage\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram.png\",\"contentUrl\":\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram.png\",\"width\":445,\"height\":473},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/blog.zhaw.ch\/icclab\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Release of Netflogi &#8211; a Graphical Interface for Netfloc\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/\",\"name\":\"Service Engineering (ICCLab &amp; SPLab)\",\"description\":\"A Blog of the ZHAW Zurich University of Applied Sciences\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/0c2544d7c31f44ae2a35d698e49fa577\",\"name\":\"delv\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/a3e8b5fdf1eb00d722e4fc9baba2b3f493244010927a89700f51e7bcf1eaae59?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a3e8b5fdf1eb00d722e4fc9baba2b3f493244010927a89700f51e7bcf1eaae59?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a3e8b5fdf1eb00d722e4fc9baba2b3f493244010927a89700f51e7bcf1eaae59?s=96&d=mm&r=g\",\"caption\":\"delv\"},\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/author\/delv\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Release of Netflogi - a Graphical Interface for Netfloc - Service Engineering (ICCLab &amp; SPLab)","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:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/","og_locale":"en_US","og_type":"article","og_title":"Release of Netflogi - a Graphical Interface for Netfloc","og_description":"In the past year i was working on a graphical interface for Netfloc\u00a0&#8211; the SDK for SDN\u00a0developed in the SDN initiative.\u00a0Just to remind you, the aim of Netflogi is to: (1) make the SDK itself easy to use and (2) expose the Netfloc\u00a0APIs and functional features to the network application developers and datacenter service providers. [&hellip;]","og_url":"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/","og_site_name":"Service Engineering (ICCLab &amp; SPLab)","article_published_time":"2016-06-01T14:51:53+00:00","article_modified_time":"2016-06-02T07:15:32+00:00","og_image":[{"url":"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram-282x300.png","type":"","width":"","height":""}],"author":"delv","twitter_card":"summary_large_image","twitter_misc":{"Written by":"delv","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#article","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/"},"author":{"name":"delv","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/0c2544d7c31f44ae2a35d698e49fa577"},"headline":"Release of Netflogi &#8211; a Graphical Interface for Netfloc","datePublished":"2016-06-01T14:51:53+00:00","dateModified":"2016-06-02T07:15:32+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/"},"wordCount":568,"commentCount":0,"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram-282x300.png","keywords":["GUI","netfloc","netflogi","SDK4SDN","SDN"],"articleSection":["*.*"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/","url":"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/","name":"Release of Netflogi - a Graphical Interface for Netfloc - Service Engineering (ICCLab &amp; SPLab)","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#primaryimage"},"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram-282x300.png","datePublished":"2016-06-01T14:51:53+00:00","dateModified":"2016-06-02T07:15:32+00:00","author":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/0c2544d7c31f44ae2a35d698e49fa577"},"breadcrumb":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#primaryimage","url":"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram.png","contentUrl":"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/06\/netflogi_diagram.png","width":445,"height":473},{"@type":"BreadcrumbList","@id":"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/blog.zhaw.ch\/icclab\/"},{"@type":"ListItem","position":2,"name":"Release of Netflogi &#8211; a Graphical Interface for Netfloc"}]},{"@type":"WebSite","@id":"https:\/\/blog.zhaw.ch\/icclab\/#website","url":"https:\/\/blog.zhaw.ch\/icclab\/","name":"Service Engineering (ICCLab &amp; SPLab)","description":"A Blog of the ZHAW Zurich University of Applied Sciences","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/0c2544d7c31f44ae2a35d698e49fa577","name":"delv","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a3e8b5fdf1eb00d722e4fc9baba2b3f493244010927a89700f51e7bcf1eaae59?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a3e8b5fdf1eb00d722e4fc9baba2b3f493244010927a89700f51e7bcf1eaae59?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a3e8b5fdf1eb00d722e4fc9baba2b3f493244010927a89700f51e7bcf1eaae59?s=96&d=mm&r=g","caption":"delv"},"url":"https:\/\/blog.zhaw.ch\/icclab\/author\/delv\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/10115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/users\/232"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/comments?post=10115"}],"version-history":[{"count":23,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/10115\/revisions"}],"predecessor-version":[{"id":10163,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/10115\/revisions\/10163"}],"wp:attachment":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/media?parent=10115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/categories?post=10115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/tags?post=10115"},{"taxonomy":"features","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/features?post=10115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}