{"id":4868,"date":"2011-12-29T16:40:38","date_gmt":"2011-12-29T11:10:38","guid":{"rendered":"http:\/\/www.tothenew.com\/blog\/?p=4868"},"modified":"2011-12-29T16:46:12","modified_gmt":"2011-12-29T11:16:12","slug":"closure-caching-for-increased-performance-memoize","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/","title":{"rendered":"Closure Caching For Increased Performance (.memoize())"},"content":{"rendered":"<p>Well This is something <b>awesome<\/b> and can increase the performance of the project when used wisely. using the groovy .memoize() we can ask closures to perform kind of caching. This can boost up the performance of the system.<br \/>\n<\/p>\n<h1>&nbsp;<\/h1>\n<h1>_<\/h1>\n<p><strong>Note:<\/strong> This feature is available in groovy 1.8+<\/p>\n<h1>Well Let me Explain this Using Examples<\/h1>\n<p>Now suppose i have a function &#8220;distance&#8221; which calculates distance between two points.<br \/>\nHence for it instead of writing a function(Method) lets write a closure for it.<br \/>\n[java]<br \/>\n        def distance = {x1, y1, x2, y2 -&gt;<br \/>\n            sleep(200)  \/\/just to add a delay for demo purposes<br \/>\n            Math.sqrt((x2 &#8211; x1)**2 + (y2 &#8211; y1)**2)<br \/>\n        }<\/p>\n<p>       \/\/To Call It 5 Times<br \/>\n       5.times {<br \/>\n            def t1 = System.currentTimeMillis()<br \/>\n            println distance(100, 20, 400, 10)<br \/>\n            println &quot;took: ${System.currentTimeMillis() &#8211; t1} milliseconds to execute&quot;<br \/>\n        }<br \/>\n[\/java]<br \/>\nNow if we will Run this the Output will be as follows:<br \/>\n[text]<br \/>\n300.1666203960727<br \/>\ntook: 201 milliseconds to execute<br \/>\n300.1666203960727<br \/>\ntook: 200 milliseconds to execute<br \/>\n300.1666203960727<br \/>\ntook: 201 milliseconds to execute<br \/>\n300.1666203960727<br \/>\ntook: 201 milliseconds to execute<br \/>\n300.1666203960727<br \/>\ntook: 201 milliseconds to execute<br \/>\n[\/text]<\/p>\n<p>Each time this closure is called all statements are executed again and hence re-computation. But if set of inputs are same then technically output should be same. hence a type of caching will help.<br \/>\nAlso if several users are acessing the app then for each user if something is done again and again though the inputs are same then that is again a overhead, this issue can also be solved by <strong>memoizeing<\/strong>. \ud83d\ude42<\/p>\n<h1>Now lets Do it with .memoize()<\/h1>\n<p>[java]<br \/>\n        def distance = {x1, y1, x2, y2 -&gt;<br \/>\n            sleep(200)  \/\/just to add a delay for demo purposes<br \/>\n            Math.sqrt((x2 &#8211; x1)**2 + (y2 &#8211; y1)**2)<br \/>\n        }.memoize() \/\/Note now closure is memoized <\/p>\n<p>       \/\/To Call It 5 Times<br \/>\n       5.times {<br \/>\n            def t1 = System.currentTimeMillis()<br \/>\n            println distance(100, 20, 400, 10)<br \/>\n            println &quot;took: ${System.currentTimeMillis() &#8211; t1}&quot;<br \/>\n        }<br \/>\n[\/java]<br \/>\nNow the result is:<br \/>\n[text]<br \/>\n300.1666203960727<br \/>\ntook: 202 milliseconds to execute<br \/>\n300.1666203960727<br \/>\ntook: 1 milliseconds to execute<br \/>\n300.1666203960727<br \/>\ntook: 1 milliseconds to execute<br \/>\n300.1666203960727<br \/>\ntook: 0 milliseconds to execute<br \/>\n300.1666203960727<br \/>\ntook: 0 milliseconds to execute<br \/>\n[\/text]<br \/>\n<b>We can definitely see the difference between time taken to execute.<\/b><br \/>\nAND HURRAY, ALL REPETITIVE CALLS WITH SAME INPUT DATA ARE NOW CACHED AND HENCE INCREASED PERFORMANCE.<\/p>\n<h1>&nbsp;<\/h1>\n<p>Hope it helped<br \/>\nRegards<br \/>\nKushal Likhi<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well This is something awesome and can increase the performance of the project when used wisely. using the groovy .memoize() we can ask closures to perform kind of caching. This can boost up the performance of the system. &nbsp; _ Note: This feature is available in groovy 1.8+ Well Let me Explain this Using Examples [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":13,"footnotes":""},"categories":[7],"tags":[730],"class_list":["post-4868","post","type-post","status-publish","format-standard","hentry","category-grails","tag-groovy-grails-performance-caching"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Well This is something awesome and can increase the performance of the project when used wisely. using the groovy .memoize() we can ask closures to perform kind of caching. This can boost up the performance of the system. _ Note: This feature is available in groovy 1.8+ Well Let me Explain this Using Examples\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Kushal Likhi\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"blog\" \/>\n\t\t<meta property=\"og:title\" content=\"Closure Caching For Increased Performance (.memoize()) | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"Well This is something awesome and can increase the performance of the project when used wisely. using the groovy .memoize() we can ask closures to perform kind of caching. This can boost up the performance of the system. _ Note: This feature is available in groovy 1.8+ Well Let me Explain this Using Examples\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Closure Caching For Increased Performance (.memoize()) | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Well This is something awesome and can increase the performance of the project when used wisely. using the groovy .memoize() we can ask closures to perform kind of caching. This can boost up the performance of the system. _ Note: This feature is available in groovy 1.8+ Well Let me Explain this Using Examples\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/closure-caching-for-increased-performance-memoize\\\/#article\",\"name\":\"Closure Caching For Increased Performance (.memoize()) | TO THE NEW Blog\",\"headline\":\"Closure Caching For Increased Performance (.memoize())\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"datePublished\":\"2011-12-29T16:40:38+05:30\",\"dateModified\":\"2011-12-29T16:46:12+05:30\",\"inLanguage\":\"en-US\",\"commentCount\":2,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/closure-caching-for-increased-performance-memoize\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/closure-caching-for-increased-performance-memoize\\\/#webpage\"},\"articleSection\":\"Grails, groovy grails performance caching\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/closure-caching-for-increased-performance-memoize\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"position\":2,\"name\":\"Grails\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/closure-caching-for-increased-performance-memoize\\\/#listItem\",\"name\":\"Closure Caching For Increased Performance (.memoize())\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/closure-caching-for-increased-performance-memoize\\\/#listItem\",\"position\":3,\"name\":\"Closure Caching For Increased Performance (.memoize())\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/\",\"name\":\"Kushal Likhi\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/closure-caching-for-increased-performance-memoize\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9311812a092d64f47eb30d7ad28378cfae924a0cac140ffbb686fcd8a565a57e?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Kushal Likhi\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/closure-caching-for-increased-performance-memoize\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/closure-caching-for-increased-performance-memoize\\\/\",\"name\":\"Closure Caching For Increased Performance (.memoize()) | TO THE NEW Blog\",\"description\":\"Well This is something awesome and can increase the performance of the project when used wisely. using the groovy .memoize() we can ask closures to perform kind of caching. This can boost up the performance of the system. _ Note: This feature is available in groovy 1.8+ Well Let me Explain this Using Examples\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/closure-caching-for-increased-performance-memoize\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/#author\"},\"datePublished\":\"2011-12-29T16:40:38+05:30\",\"dateModified\":\"2011-12-29T16:46:12+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Closure Caching For Increased Performance (.memoize()) | TO THE NEW Blog","description":"Well This is something awesome and can increase the performance of the project when used wisely. using the groovy .memoize() we can ask closures to perform kind of caching. This can boost up the performance of the system. _ Note: This feature is available in groovy 1.8+ Well Let me Explain this Using Examples","canonical_url":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/#article","name":"Closure Caching For Increased Performance (.memoize()) | TO THE NEW Blog","headline":"Closure Caching For Increased Performance (.memoize())","author":{"@id":"https:\/\/www.tothenew.com\/blog\/author\/kushal\/#author"},"publisher":{"@id":"https:\/\/www.tothenew.com\/blog\/#organization"},"datePublished":"2011-12-29T16:40:38+05:30","dateModified":"2011-12-29T16:46:12+05:30","inLanguage":"en-US","commentCount":2,"mainEntityOfPage":{"@id":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/#webpage"},"isPartOf":{"@id":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/#webpage"},"articleSection":"Grails, groovy grails performance caching"},{"@type":"BreadcrumbList","@id":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.tothenew.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/category\/grails\/#listItem","name":"Grails"}},{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/category\/grails\/#listItem","position":2,"name":"Grails","item":"https:\/\/www.tothenew.com\/blog\/category\/grails\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/#listItem","name":"Closure Caching For Increased Performance (.memoize())"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/#listItem","position":3,"name":"Closure Caching For Increased Performance (.memoize())","previousItem":{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/category\/grails\/#listItem","name":"Grails"}}]},{"@type":"Organization","@id":"https:\/\/www.tothenew.com\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/www.tothenew.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.tothenew.com\/blog\/author\/kushal\/#author","url":"https:\/\/www.tothenew.com\/blog\/author\/kushal\/","name":"Kushal Likhi","image":{"@type":"ImageObject","@id":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/9311812a092d64f47eb30d7ad28378cfae924a0cac140ffbb686fcd8a565a57e?s=96&d=mm&r=g","width":96,"height":96,"caption":"Kushal Likhi"}},{"@type":"WebPage","@id":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/#webpage","url":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/","name":"Closure Caching For Increased Performance (.memoize()) | TO THE NEW Blog","description":"Well This is something awesome and can increase the performance of the project when used wisely. using the groovy .memoize() we can ask closures to perform kind of caching. This can boost up the performance of the system. _ Note: This feature is available in groovy 1.8+ Well Let me Explain this Using Examples","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.tothenew.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/#breadcrumblist"},"author":{"@id":"https:\/\/www.tothenew.com\/blog\/author\/kushal\/#author"},"creator":{"@id":"https:\/\/www.tothenew.com\/blog\/author\/kushal\/#author"},"datePublished":"2011-12-29T16:40:38+05:30","dateModified":"2011-12-29T16:46:12+05:30"},{"@type":"WebSite","@id":"https:\/\/www.tothenew.com\/blog\/#website","url":"https:\/\/www.tothenew.com\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.tothenew.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"Closure Caching For Increased Performance (.memoize()) | TO THE NEW Blog","og:description":"Well This is something awesome and can increase the performance of the project when used wisely. using the groovy .memoize() we can ask closures to perform kind of caching. This can boost up the performance of the system. _ Note: This feature is available in groovy 1.8+ Well Let me Explain this Using Examples","og:url":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/","og:image":"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"Closure Caching For Increased Performance (.memoize()) | TO THE NEW Blog","twitter:description":"Well This is something awesome and can increase the performance of the project when used wisely. using the groovy .memoize() we can ask closures to perform kind of caching. This can boost up the performance of the system. _ Note: This feature is available in groovy 1.8+ Well Let me Explain this Using Examples","twitter:image":"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"4868","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2021-04-29 18:32:06","updated":"2024-02-29 09:29:25","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.tothenew.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.tothenew.com\/blog\/category\/grails\/\" title=\"Grails\">Grails<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tClosure Caching For Increased Performance (.memoize())\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.tothenew.com\/blog"},{"label":"Grails","link":"https:\/\/www.tothenew.com\/blog\/category\/grails\/"},{"label":"Closure Caching For Increased Performance (.memoize())","link":"https:\/\/www.tothenew.com\/blog\/closure-caching-for-increased-performance-memoize\/"}],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/4868","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=4868"}],"version-history":[{"count":0,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/4868\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=4868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=4868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=4868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}