{"id":3587,"date":"2021-01-21T18:00:39","date_gmt":"2021-01-21T18:00:39","guid":{"rendered":"https:\/\/ionicframework.com\/blog\/?p=3587"},"modified":"2021-01-21T18:00:39","modified_gmt":"2021-01-21T18:00:39","slug":"understanding-changes-to-capacitor-3-core-plugins","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins","title":{"rendered":"Understanding Changes to Capacitor 3 core plugins"},"content":{"rendered":"<p>When we <a href=\"https:\/\/capacitorjs.com\/blog\/announcing-capacitor-3-0-beta\">announced Capacitor 3.0 beta<\/a> last week, one of the biggest changes we mentioned was around the core Capacitor APIs. <strong>All officially supported plugins are now installed and versioned separately from Capacitor core<\/strong>. While this may seem like a pretty drastic change, the migration is fairly straight forward. With these changes, developers actually have more control over what APIs are included in an app. Meaning not only is there a better developer experience, but a faster startup time for your app. Let&#8217;s take a look at how we can update an app to the latest beta and use the new APIs in our App.<\/p>\n<p><!--more--><\/p>\n<h2>Updating our App<\/h2>\n<p>Let&#8217;s start off by updating our app to use the latest beta release or Capacitor Core and the CLI.<\/p>\n<pre><code class=\"language-bash\">npm install @capacitor\/core@next\nnpm install @capacitor\/cli@next\n<\/code><\/pre>\n<p>Next, we&#8217;ll install the beta releases of Capacitor iOS and Android<\/p>\n<pre><code class=\"language-bash\">npm install @capacitor\/ios@next\nnpm install @capacitor\/android@next\n<\/code><\/pre>\n<p>If you&#8217;ve customized your native projects at all, you&#8217;ll want to manually update them to account for changes to Capacitor. A detailed guide can be found here in our docs for <a href=\"https:\/\/capacitorjs.com\/docs\/v3\/updating\/3-0#ios\">iOS<\/a> and <a href=\"https:\/\/capacitorjs.com\/docs\/v3\/updating\/3-0#android\">Android<\/a>. Since I don&#8217;t have any changes in my project, I&#8217;m just going to <code>rm<\/code> the iOS and Android platforms (&#8217;cause YOLO).<\/p>\n<pre><code class=\"language-bash\">rm -rf ios android\nnpx cap add ios\nnpx cap add android\n<\/code><\/pre>\n<p>Now with this bit out of the way, we can actually get to our main topic&#8230;Plugins.<\/p>\n<h2>Adding the new plugins<\/h2>\n<p>In this <a href=\"https:\/\/github.com\/mhartington\/react-notes\">sample app<\/a>, we make use of the <a href=\"https:\/\/capacitorjs.com\/docs\/v3\/apis\/filesystem\u201d\">File System API<\/a> to save notes to our device. Let&#8217;s install the new npm package for File System and start to update our code.<\/p>\n<pre><code class=\"language-bash\">npm install @capacitor\/filesystem\n<\/code><\/pre>\n<p>In <code>.\/src\/pages\/Editor.tsx<\/code>, we have an import statement, pulling a few things from <code>@capacitor\/core<\/code>.<\/p>\n<pre><code class=\"language-ts\">import {\n  Plugins,\n  FilesystemDirectory,\n  FilesystemEncoding,\n} from &#039;@capacitor\/core&#039;;\n<\/code><\/pre>\n<p>For this, we can update our import path to point to the new package, <code>@capacitor\/filesystem<\/code>. Once this is updated, the types for <code>FilesystemDirectory<\/code> and <code>FilesystemEncoding<\/code> can stay, but we need to remove the <code>Plugins<\/code> object and replace that with the new <code>FileSystem<\/code> object. Now instead of destructuring <code>FileSystem<\/code> from the <code>Plugins<\/code> object, we can get direct access to from the package itself. Now our import should look like so:<\/p>\n<pre><code class=\"language-ts\">import {\n  Filesystem,\n  FilesystemDirectory,\n  FilesystemEncoding,\n} from &#039;@capacitor\/filesystem&#039;;\n<\/code><\/pre>\n<p>Now in our implementations, we can remove and <code>const {...} = Plugins<\/code> and just call the API directly.<\/p>\n<pre><code class=\"language-ts\">  const saveFile = async () =&gt; {\n    const file = params.name ? params.name : `note-${Date.now()}.txt`;\n    await Filesystem.writeFile({\n      path: `notes\/${file}`,\n      data: state,\n      directory: FilesystemDirectory.Documents,\n      encoding: FilesystemEncoding.UTF8,\n    });\n    history.goBack();\n  };\n\n<\/code><\/pre>\n<h2>Parting thoughts<\/h2>\n<p>If you&#8217;re using any of the core Capacitor APIs in your app, the process to update for beta is basically the same as above. We&#8217;re currently working with the folks in the Capacitor Community Github Org to help update third-party plugins to the new API, so be on the lookout for pre-releases there. We&#8217;ll be going over more Capacitor beta content in the coming weeks, so keep out for the next post. Cheers!<\/p>\n<ul>\n<li><a href=\"https:\/\/capacitorjs.com\/docs\/v3\/updating\/3-0\">Capacitor 3.0 Migration guide<\/a><\/li>\n<li><a href=\"https:\/\/capacitorjs.com\/docs\/v3\/plugins\">Capacitor 3.0 Plugin Docs<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/mhartington\/react-notes\/\">Capacitor 3.0 &amp; React Sample app<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>When we announced Capacitor 3.0 beta last week, one of the biggest changes we mentioned was around the core Capacitor APIs. All officially supported plugins are now installed and versioned separately from Capacitor core. While this may seem like a pretty drastic change, the migration is fairly straight forward. With these changes, developers actually have [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":3588,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"publish_to_discourse":"1","publish_post_category":"28","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"494875","discourse_permalink":"https:\/\/forum.ionicframework.com\/t\/understanding-changes-to-capacitor-3-core-plugins\/203275","wpdc_publishing_response":"","wpdc_publishing_error":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[121,124],"tags":[151,136],"class_list":["post-3587","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering","category-tutorials","tag-capacitor","tag-react"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.0 (Yoast SEO v23.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Understanding Changes to Capacitor 3 core plugins - Ionic Blog<\/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:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding Changes to Capacitor 3 core plugins\" \/>\n<meta property=\"og:description\" content=\"When we announced Capacitor 3.0 beta last week, one of the biggest changes we mentioned was around the core Capacitor APIs. All officially supported plugins are now installed and versioned separately from Capacitor core. While this may seem like a pretty drastic change, the migration is fairly straight forward. With these changes, developers actually have [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-21T18:00:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/01\/photo-1493217465235-252dd9c0d632.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1350\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Mike Hartington\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mhartington\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mike Hartington\" \/>\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:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins\"},\"author\":{\"name\":\"Mike Hartington\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/c8c92b04d526adb925ea514c619a267b\"},\"headline\":\"Understanding Changes to Capacitor 3 core plugins\",\"datePublished\":\"2021-01-21T18:00:39+00:00\",\"dateModified\":\"2021-01-21T18:00:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins\"},\"wordCount\":435,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/01\/photo-1493217465235-252dd9c0d632.webp\",\"keywords\":[\"Capacitor\",\"react\"],\"articleSection\":[\"Engineering\",\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins\",\"url\":\"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins\",\"name\":\"Understanding Changes to Capacitor 3 core plugins - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/01\/photo-1493217465235-252dd9c0d632.webp\",\"datePublished\":\"2021-01-21T18:00:39+00:00\",\"dateModified\":\"2021-01-21T18:00:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/01\/photo-1493217465235-252dd9c0d632.webp\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/01\/photo-1493217465235-252dd9c0d632.webp\",\"width\":1350,\"height\":900,\"caption\":\"Photo Credit: https:\/\/unsplash.com\/photos\/TL5Vy1IM-uA\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding Changes to Capacitor 3 core plugins\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ionic.io\/blog\/#website\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"name\":\"ionic.io\/blog\",\"description\":\"Build amazing native and progressive web apps with the web\",\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ionic.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/ionic.io\/blog\/#organization\",\"name\":\"Ionic\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"width\":1920,\"height\":854,\"caption\":\"Ionic\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/ionicframework\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/c8c92b04d526adb925ea514c619a267b\",\"name\":\"Mike Hartington\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/08\/mike-headshot-2-smaller-150x150.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/08\/mike-headshot-2-smaller-150x150.png\",\"caption\":\"Mike Hartington\"},\"description\":\"Director of Developer Relations\",\"sameAs\":[\"https:\/\/twitter.com\/mhartington\",\"https:\/\/x.com\/mhartington\"],\"url\":\"https:\/\/ionic.io\/blog\/author\/mike\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Understanding Changes to Capacitor 3 core plugins - Ionic Blog","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:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins","og_locale":"en_US","og_type":"article","og_title":"Understanding Changes to Capacitor 3 core plugins","og_description":"When we announced Capacitor 3.0 beta last week, one of the biggest changes we mentioned was around the core Capacitor APIs. All officially supported plugins are now installed and versioned separately from Capacitor core. While this may seem like a pretty drastic change, the migration is fairly straight forward. With these changes, developers actually have [&hellip;]","og_url":"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins","og_site_name":"Ionic Blog","article_published_time":"2021-01-21T18:00:39+00:00","og_image":[{"width":1350,"height":900,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/01\/photo-1493217465235-252dd9c0d632.webp","type":"image\/webp"}],"author":"Mike Hartington","twitter_card":"summary_large_image","twitter_creator":"@mhartington","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Mike Hartington","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins"},"author":{"name":"Mike Hartington","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/c8c92b04d526adb925ea514c619a267b"},"headline":"Understanding Changes to Capacitor 3 core plugins","datePublished":"2021-01-21T18:00:39+00:00","dateModified":"2021-01-21T18:00:39+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins"},"wordCount":435,"commentCount":0,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/01\/photo-1493217465235-252dd9c0d632.webp","keywords":["Capacitor","react"],"articleSection":["Engineering","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins","url":"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins","name":"Understanding Changes to Capacitor 3 core plugins - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/01\/photo-1493217465235-252dd9c0d632.webp","datePublished":"2021-01-21T18:00:39+00:00","dateModified":"2021-01-21T18:00:39+00:00","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/01\/photo-1493217465235-252dd9c0d632.webp","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/01\/photo-1493217465235-252dd9c0d632.webp","width":1350,"height":900,"caption":"Photo Credit: https:\/\/unsplash.com\/photos\/TL5Vy1IM-uA"},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/understanding-changes-to-capacitor-3-core-plugins#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"Understanding Changes to Capacitor 3 core plugins"}]},{"@type":"WebSite","@id":"https:\/\/ionic.io\/blog\/#website","url":"https:\/\/ionic.io\/blog\/","name":"ionic.io\/blog","description":"Build amazing native and progressive web apps with the web","publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ionic.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ionic.io\/blog\/#organization","name":"Ionic","url":"https:\/\/ionic.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","width":1920,"height":854,"caption":"Ionic"},"image":{"@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/ionicframework"]},{"@type":"Person","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/c8c92b04d526adb925ea514c619a267b","name":"Mike Hartington","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/08\/mike-headshot-2-smaller-150x150.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/08\/mike-headshot-2-smaller-150x150.png","caption":"Mike Hartington"},"description":"Director of Developer Relations","sameAs":["https:\/\/twitter.com\/mhartington","https:\/\/x.com\/mhartington"],"url":"https:\/\/ionic.io\/blog\/author\/mike"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/01\/photo-1493217465235-252dd9c0d632.webp","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/3587","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=3587"}],"version-history":[{"count":0,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/3587\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/3588"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=3587"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=3587"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=3587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}