{"id":3031,"date":"2020-06-09T11:48:00","date_gmt":"2020-06-09T10:48:00","guid":{"rendered":"https:\/\/new-blog.alexlamond.co.uk\/?p=3031"},"modified":"2020-07-11T14:24:00","modified_gmt":"2020-07-11T13:24:00","slug":"some-insight-to-the-xtravel-api","status":"publish","type":"post","link":"https:\/\/blog.alexlamond.co.uk\/?p=3031","title":{"rendered":"Some Insight to The xTravel API"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><p>Now, I am by far no expert on developing API\u2019s or doing API or key management, I am actually looking into services to allow me to do this and rate limiting, but I thought it would be nice to do a post on how I built and develop the xTravel API<\/p>\n\n\n\n<p>If you ever decide to build you own API, get a structure on the go early, that is the biggest piece of advice I can give you right now. Originally, when I was building it as EdiTravel I was building under \u2018\/1.1\/departures\u2019 then \u20182.0\/departures\u2019 and so on and so forth. What that lead to, was a massive headache for one and also total confusion for two. Which API version was the newest one? Which API version was depreciated? Why did one crash and the other not?<\/p>\n\n\n\n<p>I actually need to rebuild the structure for my xTravel API soon as some of the variable names make absolutely no sense. The thing is though, updating the version or variable names, won\u2019t affect the production app and I can backport and change the variable names if I need to<\/p>\n\n\n\n<p>Now, back to the point of this post, how did I build the xTravel API as it is today? Well, because I\u2019m not very good with Docker or third-party libraries and prefer coding in a standard language, I used PHP and there is absolutely nothing wrong with doing that. It does the job I need it to do, so why should I need to spend ten hours trying to deploy it as a Docker container?<\/p>\n\n\n\n<p>After moving away from the poor idea above where everything was basically re-written in each version and in combination with less crashes thanks to knowing how to use SwiftyHTTP I was able to use one API version for four different releases<\/p>\n\n\n<table id=\"lp-wrapper\">\r\n\t<tr>\r\n\t\t<td class=\"lp-thumb-preview\">\r\n\t\t\t<div class=\"lp-thumb-holder\" style=\"background-image: url('');\"><\/div>\r\n\t\t\t<a rel=\"nofollow\" target=\"_blank\" href=\"\"><\/a>\r\n\t\t<\/td>\r\n\t\t<td class=\"lp-content\">\r\n\t\t\t<span class=\"lp-content-title\">404 Page Not Found<\/span>\r\n\t\t\t<p class=\"lp-content-description\"><\/p>\r\n\t\t\t<p class=\"lp-content-source\"><a rel=\"nofollow\" href=\"\" target=\"_blank\">new-blog.alexlamond.co.uk<\/a><\/p>\r\n\t\t<\/td>\r\n\t<\/tr>\r\n<\/table>\n\n\n\n<p>The updates I\u2019ve made the last three releases have been UI updates, using the existing API data and anything I add or update, doesn\u2019t break or crash the app when it does not exist and I can back-peddle if need be<\/p>\n\n\n\n<p>I use a combination of private HTTP headers in order to identify what API version the app so I can point a test version of the app to the alpha endpoint or I can push the production app on my phone to use the alpha endpoint thanks to some clever HTTP header checks and see if anything breaks, if nothing breaks, the new changes get merged into the main API version meaning I don\u2019t have 20 odd versions, then the API is pushed to what I call \u2018Staging\u2019<\/p>\n\n\n\n<p>Staging is my test\/beta test endpoint, the API knows what build the latest app release is and if it detects it is higher than that, the user will get unknowingly pointed at the \u2018Staging\u2019 endpoint. Staging gives me the chance again thanks to HTTP header checks, to check there is no weird bugs using the updated API on the current production and that merging into master and not creating a new version is the right thing. If it\u2019s wrong or broken, \u2018Staging\u2019 gets tweaked with the production app and iOS simulation running the latest alpha build to see if they can be made to work in sync. If they can, fantastic, if they just point blank wont\u2019 then staging API gets pushed to a new version code, the production master gets pushed to the Alpha master so that the production master isn\u2019t overwritten and affects old version when pushed to production and the testing starts on the \u2018Staging\u2019 with the Beta app<\/p>\n\n\n<table id=\"lp-wrapper\">\r\n\t<tr>\r\n\t\t<td class=\"lp-thumb-preview\">\r\n\t\t\t<div class=\"lp-thumb-holder\" style=\"background-image: url('');\"><\/div>\r\n\t\t\t<a rel=\"nofollow\" target=\"_blank\" href=\"\"><\/a>\r\n\t\t<\/td>\r\n\t\t<td class=\"lp-content\">\r\n\t\t\t<span class=\"lp-content-title\">Software Release Life Cycle |Professionalqa.com<\/span>\r\n\t\t\t<p class=\"lp-content-description\">Generally, a software release life cycle consists of five stages viz. pre-alpha, alpha, Beta, Release candidate, general availability. Let's go through each of these stages, and understand the concept of the software release life cycle.<\/p>\r\n\t\t\t<p class=\"lp-content-source\"><a rel=\"nofollow\" href=\"\" target=\"_blank\">www.professionalqa.com<\/a><\/p>\r\n\t\t<\/td>\r\n\t<\/tr>\r\n<\/table>\n\n\n\n<p>If I\u2019m making any changes to the API, typically I\u2019m adding things or tweaking things slightly, things that aren\u2019t going to be noticeable in the production version.<\/p>\n\n\n\n<p>So, if xTravel isn\u2019t all that big an app, why go through all this effort? It\u2019s a massive learning experience for one, working with recursion, alpha, beta and server testing and it is pretty sweet on the CV for two, and number three, it simply makes my life easier. I want to use my app the way I want to use my app with all the features I want from it, so I ensure it is the best it can be. Fourth and finally, I don\u2019t want to be sharing an app that is half baked with a friend, family member or prospective employer and for it to crash or be unreliable.<\/p>\n\n\n\n<p>It may not be a popular app now, but what happens if it does become big, how do I control it, how do I do version management, release management, bug tracking, error tracking? Don\u2019t need to worry about any of that, as I\u2019ve already built a process that I\u2019ve become familiar with and can test and debug pretty easily.<\/p>\n\n\n<table id=\"lp-wrapper\">\r\n\t<tr>\r\n\t\t<td class=\"lp-thumb-preview\">\r\n\t\t\t<div class=\"lp-thumb-holder lazyload\" style=\"background-image:inherit;\" data-bg-image=\"url(&#039;https:\/\/cdn-static.paw.cloud\/img\/og\/paw-home-twitter-card-text-ca9a88bd38.png&#039;)\"><\/div>\r\n\t\t\t<a rel=\"nofollow\" target=\"_blank\" href=\"\"><\/a>\r\n\t\t<\/td>\r\n\t\t<td class=\"lp-content\">\r\n\t\t\t<span class=\"lp-content-title\">RapidAPI for Mac \u2013 The most advanced API tool for Mac<\/span>\r\n\t\t\t<p class=\"lp-content-description\">RapidAPI for Mac is a full-featured and beautifully designed Mac app that makes interaction with REST services delightful.Whether you are an API maker or consumer, RapidAPI for Mac helps you build HTTP requests, inspect the server's response and even generate client code.<\/p>\r\n\t\t\t<p class=\"lp-content-source\"><a rel=\"nofollow\" href=\"\" target=\"_blank\">paw.cloud<\/a><\/p>\r\n\t\t<\/td>\r\n\t<\/tr>\r\n<\/table>\n\n\n\n<p>A special mention must be made to this fantastic application which I was lucky enough to get free over Black Friday last year, it has made testing and working with API\u2019s including third-party API\u2019s so easy and simply. Having pre-defined variables you can switch between, for example, I have a bunch of Coordinates stored for different places that allow me to check different API providers. Change the dropdown to Edinburgh and run the request. Done. Change the dropdown to London<a href='https:\/\/index.co\/company\/london' data-index='' target='_blank' class='idc-hasIcon'><\/a> and run the request. Done. No need to remember coordinates or codes or set special test headers. Simply,  change the dropdown.<\/p>\n<\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>Now, I am by far no expert on developing API\u2019s or doing API or key management, I am actually looking into services to allow me &hellip;<\/p>\n","protected":false},"author":1,"featured_media":2238,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"fifu_image_url":"","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[385,3,6],"tags":[434,433,424],"series":[],"ppma_author":[554],"class_list":["post-3031","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios","category-personal","category-technology","tag-insight","tag-some","tag-xtravel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Some Insight to The xTravel API - Alex Lamond<\/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.alexlamond.co.uk\/?p=3031\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Some Insight to The xTravel API - Alex Lamond\" \/>\n<meta property=\"og:description\" content=\"Now, I am by far no expert on developing API\u2019s or doing API or key management, I am actually looking into services to allow me &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.alexlamond.co.uk\/?p=3031\" \/>\n<meta property=\"og:site_name\" content=\"Alex Lamond\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-09T10:48:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-11T13:24:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2017\/08\/pexels-photo-169573-1024x683.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"683\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Alex\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@alexlamond1\" \/>\n<meta name=\"twitter:site\" content=\"@alexlamond1\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=3031#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=3031\"},\"author\":{\"name\":\"Alex\",\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/#\\\/schema\\\/person\\\/839b5037a05f80a290472f31b1bf38f3\"},\"headline\":\"Some Insight to The xTravel API\",\"datePublished\":\"2020-06-09T10:48:00+00:00\",\"dateModified\":\"2020-07-11T13:24:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=3031\"},\"wordCount\":944,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/#\\\/schema\\\/person\\\/839b5037a05f80a290472f31b1bf38f3\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=3031#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/wp-content\\\/uploads\\\/2017\\\/08\\\/pexels-photo-169573.jpeg\",\"keywords\":[\"insight\",\"some\",\"xtravel\"],\"articleSection\":[\"iOS\",\"Personal\",\"Technology\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=3031#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=3031\",\"url\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=3031\",\"name\":\"Some Insight to The xTravel API - Alex Lamond\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=3031#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=3031#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/wp-content\\\/uploads\\\/2017\\\/08\\\/pexels-photo-169573.jpeg\",\"datePublished\":\"2020-06-09T10:48:00+00:00\",\"dateModified\":\"2020-07-11T13:24:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=3031#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=3031\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=3031#primaryimage\",\"url\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/wp-content\\\/uploads\\\/2017\\\/08\\\/pexels-photo-169573.jpeg\",\"contentUrl\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/wp-content\\\/uploads\\\/2017\\\/08\\\/pexels-photo-169573.jpeg\",\"width\":3283,\"height\":2189},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?p=3031#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Some Insight to The xTravel API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/#website\",\"url\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/\",\"name\":\"Alex Lamond\",\"description\":\"Technology &amp; Ramblings.\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/#\\\/schema\\\/person\\\/839b5037a05f80a290472f31b1bf38f3\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/#\\\/schema\\\/person\\\/839b5037a05f80a290472f31b1bf38f3\",\"name\":\"Alex\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=gf1801ec1f25976613908cbcb2a8d3e71\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=g\",\"caption\":\"Alex\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=gf1801ec1f25976613908cbcb2a8d3e71\"},\"sameAs\":[\"https:\\\/\\\/alexlamond.co.uk\",\"https:\\\/\\\/x.com\\\/alexlamond1\"],\"url\":\"https:\\\/\\\/blog.alexlamond.co.uk\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Some Insight to The xTravel API - Alex Lamond","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.alexlamond.co.uk\/?p=3031","og_locale":"en_GB","og_type":"article","og_title":"Some Insight to The xTravel API - Alex Lamond","og_description":"Now, I am by far no expert on developing API\u2019s or doing API or key management, I am actually looking into services to allow me &hellip;","og_url":"https:\/\/blog.alexlamond.co.uk\/?p=3031","og_site_name":"Alex Lamond","article_published_time":"2020-06-09T10:48:00+00:00","article_modified_time":"2020-07-11T13:24:00+00:00","og_image":[{"width":1024,"height":683,"url":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2017\/08\/pexels-photo-169573-1024x683.jpeg","type":"image\/jpeg"}],"author":"Alex","twitter_card":"summary_large_image","twitter_creator":"@alexlamond1","twitter_site":"@alexlamond1","twitter_misc":{"Written by":"Alex","Estimated reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.alexlamond.co.uk\/?p=3031#article","isPartOf":{"@id":"https:\/\/blog.alexlamond.co.uk\/?p=3031"},"author":{"name":"Alex","@id":"https:\/\/blog.alexlamond.co.uk\/#\/schema\/person\/839b5037a05f80a290472f31b1bf38f3"},"headline":"Some Insight to The xTravel API","datePublished":"2020-06-09T10:48:00+00:00","dateModified":"2020-07-11T13:24:00+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.alexlamond.co.uk\/?p=3031"},"wordCount":944,"commentCount":0,"publisher":{"@id":"https:\/\/blog.alexlamond.co.uk\/#\/schema\/person\/839b5037a05f80a290472f31b1bf38f3"},"image":{"@id":"https:\/\/blog.alexlamond.co.uk\/?p=3031#primaryimage"},"thumbnailUrl":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2017\/08\/pexels-photo-169573.jpeg","keywords":["insight","some","xtravel"],"articleSection":["iOS","Personal","Technology"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.alexlamond.co.uk\/?p=3031#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.alexlamond.co.uk\/?p=3031","url":"https:\/\/blog.alexlamond.co.uk\/?p=3031","name":"Some Insight to The xTravel API - Alex Lamond","isPartOf":{"@id":"https:\/\/blog.alexlamond.co.uk\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.alexlamond.co.uk\/?p=3031#primaryimage"},"image":{"@id":"https:\/\/blog.alexlamond.co.uk\/?p=3031#primaryimage"},"thumbnailUrl":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2017\/08\/pexels-photo-169573.jpeg","datePublished":"2020-06-09T10:48:00+00:00","dateModified":"2020-07-11T13:24:00+00:00","breadcrumb":{"@id":"https:\/\/blog.alexlamond.co.uk\/?p=3031#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.alexlamond.co.uk\/?p=3031"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/blog.alexlamond.co.uk\/?p=3031#primaryimage","url":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2017\/08\/pexels-photo-169573.jpeg","contentUrl":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2017\/08\/pexels-photo-169573.jpeg","width":3283,"height":2189},{"@type":"BreadcrumbList","@id":"https:\/\/blog.alexlamond.co.uk\/?p=3031#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.alexlamond.co.uk\/"},{"@type":"ListItem","position":2,"name":"Some Insight to The xTravel API"}]},{"@type":"WebSite","@id":"https:\/\/blog.alexlamond.co.uk\/#website","url":"https:\/\/blog.alexlamond.co.uk\/","name":"Alex Lamond","description":"Technology &amp; Ramblings.","publisher":{"@id":"https:\/\/blog.alexlamond.co.uk\/#\/schema\/person\/839b5037a05f80a290472f31b1bf38f3"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.alexlamond.co.uk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.alexlamond.co.uk\/#\/schema\/person\/839b5037a05f80a290472f31b1bf38f3","name":"Alex","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=gf1801ec1f25976613908cbcb2a8d3e71","url":"https:\/\/secure.gravatar.com\/avatar\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=g","caption":"Alex"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=gf1801ec1f25976613908cbcb2a8d3e71"},"sameAs":["https:\/\/alexlamond.co.uk","https:\/\/x.com\/alexlamond1"],"url":"https:\/\/blog.alexlamond.co.uk\/?author=1"}]}},"author_meta":{"display_name":"Alex","author_link":"https:\/\/blog.alexlamond.co.uk\/?author=1"},"featured_img":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2017\/08\/pexels-photo-169573-300x200.jpeg","jetpack_featured_media_url":"https:\/\/blog.alexlamond.co.uk\/wp-content\/uploads\/2017\/08\/pexels-photo-169573.jpeg","coauthors":[{"link":"https:\/\/blog.alexlamond.co.uk\/?author=1","display_name":"Alex"}],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=385\" class=\"advgb-post-tax-term\">iOS<\/a>","<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=3\" class=\"advgb-post-tax-term\">Personal<\/a>","<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=6\" class=\"advgb-post-tax-term\">Technology<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">iOS<\/span>","<span class=\"advgb-post-tax-term\">Personal<\/span>","<span class=\"advgb-post-tax-term\">Technology<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=6\" class=\"advgb-post-tax-term\">insight<\/a>","<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=6\" class=\"advgb-post-tax-term\">some<\/a>","<a href=\"https:\/\/blog.alexlamond.co.uk\/?cat=6\" class=\"advgb-post-tax-term\">xtravel<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">insight<\/span>","<span class=\"advgb-post-tax-term\">some<\/span>","<span class=\"advgb-post-tax-term\">xtravel<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 6 years ago","modified":"Updated 6 years ago"},"absolute_dates":{"created":"Posted on 9th June 2020","modified":"Updated on 11th July 2020"},"absolute_dates_time":{"created":"Posted on 9th June 2020 11:48 am","modified":"Updated on 11th July 2020 2:24 pm"},"featured_img_caption":"","series_order":null,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pgAAHS-MT","jetpack_likes_enabled":false,"authors":[{"term_id":554,"user_id":1,"is_guest":0,"slug":"alex","display_name":"Alex","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/cb2053fb9839b65ee37e9cadf3ee3f24bcd4d092bf1cadc53f662e8bf380caff?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/3031","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3031"}],"version-history":[{"count":8,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/3031\/revisions"}],"predecessor-version":[{"id":3119,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/3031\/revisions\/3119"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=\/wp\/v2\/media\/2238"}],"wp:attachment":[{"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3031"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3031"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3031"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fseries&post=3031"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.alexlamond.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fppma_author&post=3031"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}