{"id":6873,"date":"2015-07-01T22:58:46","date_gmt":"2015-07-02T03:58:46","guid":{"rendered":"http:\/\/www.openstack.org\/blog\/?p=6873"},"modified":"2015-07-02T21:57:39","modified_gmt":"2015-07-03T02:57:39","slug":"writing-your-first-openstack-application","status":"publish","type":"post","link":"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/","title":{"rendered":"Writing Your First OpenStack Application"},"content":{"rendered":"<p class=\"lead\">Ever thought about what it takes to write a scalable cloud application using an OpenStack SDK? Thanks to a small team&#8217;s heroic effort, there&#8217;s <a href=\"http:\/\/developer.openstack.org\/firstapp-libcloud\/getting_started.html\">now a guide for that<\/a>!<\/p>\n<p>Christian Berendt (<a href=\"https:\/\/www.b1-systems.de\/\" target=\"_blank\">B1 Systems<\/a>), Sean Collins (<a href=\"https:\/\/www.mirantis.com\/\" target=\"_blank\">Mirantis<\/a>), James Dempsey (<a href=\"http:\/\/cloud.catalyst.net.nz\" target=\"_blank\">Catalyst IT<\/a>) and Tom Fifield gathered in Taipei, with Nick Chase live via video link, to produce &#8220;Writing Your First OpenStack Application&#8221; in just five days. The sprint was organised by the <a href=\"https:\/\/wiki.openstack.org\/wiki\/Application_Ecosystem_Working_Group\">Application Ecosystem Working Group<\/a>, with the financial support of the OpenStack Foundation.<\/p>\n<p>The new work is aimed at software developers who want to build applications on OpenStack clouds and also shares some best practices for cloud application development.<\/p>\n<p>Inspired by Django&#8217;s first app tutorial, where a simple polling app is used to explore the basics of working with Django, &#8220;Writing Your First OpenStack Application&#8221; uses an app that generates beautiful <a href=\"http:\/\/en.wikipedia.org\/wiki\/Fractal\">fractal images<\/a> as a teaching tool to run through areas like:<\/p>\n<ul>\n<li>Creating and destroying compute resources.<\/li>\n<li>Scaling available resources up and down.<\/li>\n<li>Using Object and Block storage for file and database persistence.<\/li>\n<li>Customizing networking for better performance and segregation.<\/li>\n<li>Making cloud-related architecture decisions such as turning functions into micro-services and modularizing them.<\/li>\n<\/ul>\n<p>The guide has been written with a strong preference for the most common API calls, so it will work across a broad spectrum of OpenStack versions. In addition, the authors have paid special attention that the first few sections should work almost regardless of OpenStack cloud configuration.<\/p>\n<p>A core part of the guide&#8217;s design is support for multiple SDKs. The initial version was written and tested with the libcloud SDK, but work is underway for <a href=\"https:\/\/review.openstack.org\/#\/c\/180877\/\">python-openstacksdk<\/a>, <a href=\"https:\/\/review.openstack.org\/#\/c\/196537\/\">pkgcloud<\/a> and fog which will re-use the text with new code samples.<\/p>\n<p>So, check out &#8220;<a class=\"link\" href=\"http:\/\/developer.openstack.org\/firstapp-libcloud\/getting_started.html\" target=\"_top\">Writing your First OpenStack Application&#8221;<\/a> for libcloud, watch the <a href=\"https:\/\/www.youtube.com\/watch?v=o1GAlv1lmjY\">introductory presentation<\/a> from the summit, or consider helping complete the <a href=\"https:\/\/github.com\/openstack\/api-site\/tree\/master\/firstapp\">samples<\/a> for other languages.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6877\" style=\"width: 178px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/11146336_10202912562493804_7591702871240574350_o.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6877\" class=\"wp-image-6877 size-medium\" src=\"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/11146336_10202912562493804_7591702871240574350_o-168x300.jpg\" alt=\"Taipei 101 (c) James Dempsey\" width=\"168\" height=\"300\" srcset=\"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/11146336_10202912562493804_7591702871240574350_o-168x300.jpg 168w, https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/11146336_10202912562493804_7591702871240574350_o-768x1375.jpg 768w, https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/11146336_10202912562493804_7591702871240574350_o-572x1024.jpg 572w, https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/11146336_10202912562493804_7591702871240574350_o.jpg 1117w\" sizes=\"auto, (max-width: 168px) 100vw, 168px\" \/><\/a><p id=\"caption-attachment-6877\" class=\"wp-caption-text\">Taipei 101 (c) James Dempsey<\/p><\/div>\n<div id=\"attachment_6878\" style=\"width: 209px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/DSC_0028.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6878\" class=\"wp-image-6878 size-medium\" src=\"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/DSC_0028-e1431333744524-199x300.jpg\" alt=\"Each post-it note represents an area that had to be written.\" width=\"199\" height=\"300\" srcset=\"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/DSC_0028-e1431333744524-199x300.jpg 199w, https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/DSC_0028-e1431333744524-768x1155.jpg 768w, https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/DSC_0028-e1431333744524-681x1024.jpg 681w, https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/DSC_0028-e1431333744524.jpg 2000w\" sizes=\"auto, (max-width: 199px) 100vw, 199px\" \/><\/a><p id=\"caption-attachment-6878\" class=\"wp-caption-text\">Each post-it note represents an area that had to be written.<\/p><\/div>\n<div id=\"attachment_6876\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/facebook_IMG_0831.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6876\" class=\"wp-image-6876 size-medium\" src=\"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/facebook_IMG_0831-300x176.jpg\" alt=\"Enjoying local Taiwanese food after a hard day's writing.\" width=\"300\" height=\"176\" srcset=\"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/facebook_IMG_0831-300x176.jpg 300w, https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/facebook_IMG_0831-768x449.jpg 768w, https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/facebook_IMG_0831-1024x599.jpg 1024w, https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/facebook_IMG_0831.jpg 2000w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-6876\" class=\"wp-caption-text\">Enjoying local Taiwanese food after a hard day&#8217;s writing.<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Ever thought about what it takes to write a scalable cloud application using an OpenStack SDK? Thanks to a small team&#8217;s heroic effort, there&#8217;s now a guide for that! Christian Berendt (B1 Systems), Sean Collins (Mirantis), James Dempsey (Catalyst IT) and Tom Fifield gathered in Taipei, with Nick Chase live via video link, to produce&#8230;  <a href=\"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/\" class=\"more-link\" title=\"Read Writing Your First OpenStack Application\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":51,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6873","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Writing Your First OpenStack Application - OpenStack Blog | Open Infrastructure Foundation<\/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.openstack.org\/blog\/writing-your-first-openstack-application\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Writing Your First OpenStack Application - OpenStack Blog | Open Infrastructure Foundation\" \/>\n<meta property=\"og:description\" content=\"Ever thought about what it takes to write a scalable cloud application using an OpenStack SDK? Thanks to a small team&#8217;s heroic effort, there&#8217;s now a guide for that! Christian Berendt (B1 Systems), Sean Collins (Mirantis), James Dempsey (Catalyst IT) and Tom Fifield gathered in Taipei, with Nick Chase live via video link, to produce... Read more &raquo;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/\" \/>\n<meta property=\"og:site_name\" content=\"OpenStack Blog | Open Infrastructure Foundation\" \/>\n<meta property=\"article:published_time\" content=\"2015-07-02T03:58:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-07-03T02:57:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/11146336_10202912562493804_7591702871240574350_o.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1117\" \/>\n\t<meta property=\"og:image:height\" content=\"2000\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Tom Fifield\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tom Fifield\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/writing-your-first-openstack-application\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/writing-your-first-openstack-application\\\/\"},\"author\":{\"name\":\"Tom Fifield\",\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/#\\\/schema\\\/person\\\/a28262d219e39d3c8154327be5a5f785\"},\"headline\":\"Writing Your First OpenStack Application\",\"datePublished\":\"2015-07-02T03:58:46+00:00\",\"dateModified\":\"2015-07-03T02:57:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/writing-your-first-openstack-application\\\/\"},\"wordCount\":364,\"image\":{\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/writing-your-first-openstack-application\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/05\\\/11146336_10202912562493804_7591702871240574350_o-168x300.jpg\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/writing-your-first-openstack-application\\\/\",\"url\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/writing-your-first-openstack-application\\\/\",\"name\":\"Writing Your First OpenStack Application - OpenStack Blog | Open Infrastructure Foundation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/writing-your-first-openstack-application\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/writing-your-first-openstack-application\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/05\\\/11146336_10202912562493804_7591702871240574350_o-168x300.jpg\",\"datePublished\":\"2015-07-02T03:58:46+00:00\",\"dateModified\":\"2015-07-03T02:57:39+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/#\\\/schema\\\/person\\\/a28262d219e39d3c8154327be5a5f785\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/writing-your-first-openstack-application\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.openstack.org\\\/blog\\\/writing-your-first-openstack-application\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/writing-your-first-openstack-application\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/05\\\/11146336_10202912562493804_7591702871240574350_o.jpg\",\"contentUrl\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/05\\\/11146336_10202912562493804_7591702871240574350_o.jpg\",\"width\":1117,\"height\":2000,\"caption\":\"Taipei 101 (c) James Dempsey\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/writing-your-first-openstack-application\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Writing Your First OpenStack Application\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/\",\"name\":\"OpenStack Blog | Open Infrastructure Foundation\",\"description\":\"The latest news and information for the OpenStack Community.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/#\\\/schema\\\/person\\\/a28262d219e39d3c8154327be5a5f785\",\"name\":\"Tom Fifield\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/26365fb22512e2538181844bf51db5ed17282e85b5954422ca25253d5d05a4be?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/26365fb22512e2538181844bf51db5ed17282e85b5954422ca25253d5d05a4be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/26365fb22512e2538181844bf51db5ed17282e85b5954422ca25253d5d05a4be?s=96&d=mm&r=g\",\"caption\":\"Tom Fifield\"},\"url\":\"https:\\\/\\\/www.openstack.org\\\/blog\\\/author\\\/tom-f\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Writing Your First OpenStack Application - OpenStack Blog | Open Infrastructure Foundation","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.openstack.org\/blog\/writing-your-first-openstack-application\/","og_locale":"en_US","og_type":"article","og_title":"Writing Your First OpenStack Application - OpenStack Blog | Open Infrastructure Foundation","og_description":"Ever thought about what it takes to write a scalable cloud application using an OpenStack SDK? Thanks to a small team&#8217;s heroic effort, there&#8217;s now a guide for that! Christian Berendt (B1 Systems), Sean Collins (Mirantis), James Dempsey (Catalyst IT) and Tom Fifield gathered in Taipei, with Nick Chase live via video link, to produce... Read more &raquo;","og_url":"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/","og_site_name":"OpenStack Blog | Open Infrastructure Foundation","article_published_time":"2015-07-02T03:58:46+00:00","article_modified_time":"2015-07-03T02:57:39+00:00","og_image":[{"width":1117,"height":2000,"url":"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/11146336_10202912562493804_7591702871240574350_o.jpg","type":"image\/jpeg"}],"author":"Tom Fifield","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Tom Fifield","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/#article","isPartOf":{"@id":"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/"},"author":{"name":"Tom Fifield","@id":"https:\/\/www.openstack.org\/blog\/#\/schema\/person\/a28262d219e39d3c8154327be5a5f785"},"headline":"Writing Your First OpenStack Application","datePublished":"2015-07-02T03:58:46+00:00","dateModified":"2015-07-03T02:57:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/"},"wordCount":364,"image":{"@id":"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/#primaryimage"},"thumbnailUrl":"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/11146336_10202912562493804_7591702871240574350_o-168x300.jpg","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/","url":"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/","name":"Writing Your First OpenStack Application - OpenStack Blog | Open Infrastructure Foundation","isPartOf":{"@id":"https:\/\/www.openstack.org\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/#primaryimage"},"image":{"@id":"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/#primaryimage"},"thumbnailUrl":"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/11146336_10202912562493804_7591702871240574350_o-168x300.jpg","datePublished":"2015-07-02T03:58:46+00:00","dateModified":"2015-07-03T02:57:39+00:00","author":{"@id":"https:\/\/www.openstack.org\/blog\/#\/schema\/person\/a28262d219e39d3c8154327be5a5f785"},"breadcrumb":{"@id":"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/#primaryimage","url":"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/11146336_10202912562493804_7591702871240574350_o.jpg","contentUrl":"https:\/\/www.openstack.org\/blog\/wp-content\/uploads\/2015\/05\/11146336_10202912562493804_7591702871240574350_o.jpg","width":1117,"height":2000,"caption":"Taipei 101 (c) James Dempsey"},{"@type":"BreadcrumbList","@id":"https:\/\/www.openstack.org\/blog\/writing-your-first-openstack-application\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.openstack.org\/blog\/"},{"@type":"ListItem","position":2,"name":"Writing Your First OpenStack Application"}]},{"@type":"WebSite","@id":"https:\/\/www.openstack.org\/blog\/#website","url":"https:\/\/www.openstack.org\/blog\/","name":"OpenStack Blog | Open Infrastructure Foundation","description":"The latest news and information for the OpenStack Community.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.openstack.org\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.openstack.org\/blog\/#\/schema\/person\/a28262d219e39d3c8154327be5a5f785","name":"Tom Fifield","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/26365fb22512e2538181844bf51db5ed17282e85b5954422ca25253d5d05a4be?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/26365fb22512e2538181844bf51db5ed17282e85b5954422ca25253d5d05a4be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/26365fb22512e2538181844bf51db5ed17282e85b5954422ca25253d5d05a4be?s=96&d=mm&r=g","caption":"Tom Fifield"},"url":"https:\/\/www.openstack.org\/blog\/author\/tom-f\/"}]}},"_links":{"self":[{"href":"https:\/\/www.openstack.org\/blog\/wp-json\/wp\/v2\/posts\/6873","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.openstack.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.openstack.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.openstack.org\/blog\/wp-json\/wp\/v2\/users\/51"}],"replies":[{"embeddable":true,"href":"https:\/\/www.openstack.org\/blog\/wp-json\/wp\/v2\/comments?post=6873"}],"version-history":[{"count":16,"href":"https:\/\/www.openstack.org\/blog\/wp-json\/wp\/v2\/posts\/6873\/revisions"}],"predecessor-version":[{"id":6997,"href":"https:\/\/www.openstack.org\/blog\/wp-json\/wp\/v2\/posts\/6873\/revisions\/6997"}],"wp:attachment":[{"href":"https:\/\/www.openstack.org\/blog\/wp-json\/wp\/v2\/media?parent=6873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.openstack.org\/blog\/wp-json\/wp\/v2\/categories?post=6873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.openstack.org\/blog\/wp-json\/wp\/v2\/tags?post=6873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}