{"id":12321,"date":"2014-03-16T18:11:11","date_gmt":"2014-03-16T12:41:11","guid":{"rendered":"https:\/\/2thenew.xyz\/blog\/?p=12321"},"modified":"2014-03-17T01:38:45","modified_gmt":"2014-03-16T20:08:45","slug":"applying-layout-to-template-at-runtime-in-grails-application","status":"publish","type":"post","link":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/","title":{"rendered":"Applying layout to template at Runtime in Grails Application"},"content":{"rendered":"<p>There are use cases where we render the template from our action and update some div in the page using ajax.<br \/>\nThe downside of this approach is when the user hits the url directly in browser address bar and the UI get totally messed up.<\/p>\n<p><a href=\"\/blog\/wp-ttn-blog\/uploads\/2014\/03\/before.png\"><img loading=\"lazy\" decoding=\"async\" src=\"\/blog\/wp-ttn-blog\/uploads\/2014\/03\/before.png\" alt=\"Blog image\" title=\"before\" width=\"396\" height=\"109\" class=\"alignnone size-full\" \/><br \/>\nSo to fix this issue we need to apply the layout at runtime and its pretty easy in grails to do this, by writing the following code<br \/>\n[java]<br \/>\nrequest[GroovyPageLayoutFinder.LAYOUT_ATTRIBUTE] = &quot;main&quot;<br \/>\n[\/java]<br \/>\nTo make this more generic I created an annotation which will be applied to the Ajax actions. I also updated the filter to apply layout based on request xhr and the annotation is applied to action or not<\/p>\n<ul>\n<li>Create annotation in src\/groovy folder<br \/>\n[java]<br \/>\npackage com.sony.common.annotation<\/p>\n<p>import java.lang.annotation.ElementType<br \/>\nimport java.lang.annotation.Retention<br \/>\nimport java.lang.annotation.RetentionPolicy<br \/>\nimport java.lang.annotation.Target<\/p>\n<p>@Target([ElementType.METHOD])<br \/>\n@Retention(RetentionPolicy.RUNTIME)<br \/>\npublic @interface Ajaxed {<\/p>\n<p>    String layout() default &quot;main&quot;<\/p>\n<p>}<br \/>\n[\/java]\n<\/li>\n<li>Apply annotation to the controller method<br \/>\n[java]<br \/>\n@Ajaxed()<br \/>\n    def searchPlayers(PlayerSearchCO playerSearchCO) {<br \/>\n        List&lt;Player&gt; players = searchService.search(playerSearchCO)<br \/>\n        render(template: &#8216;players&#8217;, model: [players: players, teamParticipant: playerSearchCO.teamParticipant])<br \/>\n    }<br \/>\n[\/java]\n<\/li>\n<li>Add Filter to apply layout<br \/>\n[java]<br \/>\napplyLayoutForAjax(controller: &#8216;*&#8217;, action: &#8216;*&#8217;) {<br \/>\n            before = {<br \/>\n                if (controllerName &amp;&amp; actionName &amp;&amp; !request.xhr) {<br \/>\n                    def controllerClass = grailsApplication.controllerClasses.find { it.logicalPropertyName == controllerName }<br \/>\n                    def action = ApplicationContextHolder.resolveBean(controllerClass.fullName).class.declaredMethods.find { field -&gt; field.name == actionName }<br \/>\n                    def annotation = action ? action.getAnnotation(Ajaxed) : null<br \/>\n                    if (annotation) {<br \/>\n                        request[GroovyPageLayoutFinder.LAYOUT_ATTRIBUTE] = annotation.layout()<br \/>\n                    }<\/p>\n<p>                }<br \/>\n            }<br \/>\n        }<br \/>\n[\/java]\n<\/li>\n<\/ul>\n<p>and that&#8217;s it. Now your view will look something like this<br \/>\n<a href=\"\/blog\/wp-ttn-blog\/uploads\/2014\/03\/after.png\"><img loading=\"lazy\" decoding=\"async\" src=\"\/blog\/wp-ttn-blog\/uploads\/2014\/03\/after.png\" alt=\"Blog image\" title=\"after\" width=\"1176\" height=\"266\" class=\"alignnone size-full\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are use cases where we render the template from our action and update some div in the page using ajax. The downside of this approach is when the user hits the url directly in browser address bar and the UI get totally messed up. So to fix this issue we need to apply the [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":12,"footnotes":""},"categories":[7],"tags":[1353,96,1355,1354,785,1063],"class_list":["post-12321","post","type-post","status-publish","format-standard","hentry","category-grails","tag-aaply-grail-layout-on-ajax","tag-ajax","tag-ajax-in-grails","tag-apply-layout-on-grails-templates","tag-grails-layout","tag-isajax"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"There are use cases where we render the template from our action and update some div in the page using ajax. The downside of this approach is when the user hits the url directly in browser address bar and the UI get totally messed up. So to fix this issue we need to apply the\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Uday Pratap Singh\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/\" \/>\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=\"Applying layout to template at Runtime in Grails Application | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"There are use cases where we render the template from our action and update some div in the page using ajax. The downside of this approach is when the user hits the url directly in browser address bar and the UI get totally messed up. So to fix this issue we need to apply the\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/2thenew.xyz\/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=\"Applying layout to template at Runtime in Grails Application | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"There are use cases where we render the template from our action and update some div in the page using ajax. The downside of this approach is when the user hits the url directly in browser address bar and the UI get totally messed up. So to fix this issue we need to apply the\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/2thenew.xyz\/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\\\/applying-layout-to-template-at-runtime-in-grails-application\\\/#article\",\"name\":\"Applying layout to template at Runtime in Grails Application | TO THE NEW Blog\",\"headline\":\"Applying layout to template at Runtime in Grails Application\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/uday\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"\\\/blog\\\/wp-ttn-blog\\\/uploads\\\/2014\\\/03\\\/before.png\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/applying-layout-to-template-at-runtime-in-grails-application\\\/#articleImage\"},\"datePublished\":\"2014-03-16T18:11:11+05:30\",\"dateModified\":\"2014-03-17T01:38:45+05:30\",\"inLanguage\":\"en-US\",\"commentCount\":2,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/applying-layout-to-template-at-runtime-in-grails-application\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/applying-layout-to-template-at-runtime-in-grails-application\\\/#webpage\"},\"articleSection\":\"Grails, aaply grail layout on ajax, Ajax, ajax in grails, apply layout on grails templates, grails layout, isAjax\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/applying-layout-to-template-at-runtime-in-grails-application\\\/#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\\\/applying-layout-to-template-at-runtime-in-grails-application\\\/#listItem\",\"name\":\"Applying layout to template at Runtime in Grails Application\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/applying-layout-to-template-at-runtime-in-grails-application\\\/#listItem\",\"position\":3,\"name\":\"Applying layout to template at Runtime in Grails Application\",\"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\\\/uday\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/uday\\\/\",\"name\":\"Uday Pratap Singh\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/applying-layout-to-template-at-runtime-in-grails-application\\\/#authorImage\",\"url\":\"https:\\\/\\\/newersworld-sf-static.tothenew.net\\\/prod\\\/profilePicFolder\\\/d4c98503-ff55-4112-8fc2-e3c4fcc6fc3a_282-Uday-Pratap-Singh-PROFILEPICTURE.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Uday Pratap Singh\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/applying-layout-to-template-at-runtime-in-grails-application\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/applying-layout-to-template-at-runtime-in-grails-application\\\/\",\"name\":\"Applying layout to template at Runtime in Grails Application | TO THE NEW Blog\",\"description\":\"There are use cases where we render the template from our action and update some div in the page using ajax. The downside of this approach is when the user hits the url directly in browser address bar and the UI get totally messed up. So to fix this issue we need to apply the\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/applying-layout-to-template-at-runtime-in-grails-application\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/uday\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/uday\\\/#author\"},\"datePublished\":\"2014-03-16T18:11:11+05:30\",\"dateModified\":\"2014-03-17T01:38:45+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":"Applying layout to template at Runtime in Grails Application | TO THE NEW Blog","description":"There are use cases where we render the template from our action and update some div in the page using ajax. The downside of this approach is when the user hits the url directly in browser address bar and the UI get totally messed up. So to fix this issue we need to apply the","canonical_url":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/#article","name":"Applying layout to template at Runtime in Grails Application | TO THE NEW Blog","headline":"Applying layout to template at Runtime in Grails Application","author":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/uday\/#author"},"publisher":{"@id":"https:\/\/2thenew.xyz\/blog\/#organization"},"image":{"@type":"ImageObject","url":"\/blog\/wp-ttn-blog\/uploads\/2014\/03\/before.png","@id":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/#articleImage"},"datePublished":"2014-03-16T18:11:11+05:30","dateModified":"2014-03-17T01:38:45+05:30","inLanguage":"en-US","commentCount":2,"mainEntityOfPage":{"@id":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/#webpage"},"isPartOf":{"@id":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/#webpage"},"articleSection":"Grails, aaply grail layout on ajax, Ajax, ajax in grails, apply layout on grails templates, grails layout, isAjax"},{"@type":"BreadcrumbList","@id":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog#listItem","position":1,"name":"Home","item":"https:\/\/2thenew.xyz\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/grails\/#listItem","name":"Grails"}},{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/grails\/#listItem","position":2,"name":"Grails","item":"https:\/\/2thenew.xyz\/blog\/category\/grails\/","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/#listItem","name":"Applying layout to template at Runtime in Grails Application"},"previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/#listItem","position":3,"name":"Applying layout to template at Runtime in Grails Application","previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/grails\/#listItem","name":"Grails"}}]},{"@type":"Organization","@id":"https:\/\/2thenew.xyz\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/2thenew.xyz\/blog\/"},{"@type":"Person","@id":"https:\/\/2thenew.xyz\/blog\/author\/uday\/#author","url":"https:\/\/2thenew.xyz\/blog\/author\/uday\/","name":"Uday Pratap Singh","image":{"@type":"ImageObject","@id":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/#authorImage","url":"https:\/\/newersworld-sf-static.tothenew.net\/prod\/profilePicFolder\/d4c98503-ff55-4112-8fc2-e3c4fcc6fc3a_282-Uday-Pratap-Singh-PROFILEPICTURE.jpeg","width":96,"height":96,"caption":"Uday Pratap Singh"}},{"@type":"WebPage","@id":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/#webpage","url":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/","name":"Applying layout to template at Runtime in Grails Application | TO THE NEW Blog","description":"There are use cases where we render the template from our action and update some div in the page using ajax. The downside of this approach is when the user hits the url directly in browser address bar and the UI get totally messed up. So to fix this issue we need to apply the","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/2thenew.xyz\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/#breadcrumblist"},"author":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/uday\/#author"},"creator":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/uday\/#author"},"datePublished":"2014-03-16T18:11:11+05:30","dateModified":"2014-03-17T01:38:45+05:30"},{"@type":"WebSite","@id":"https:\/\/2thenew.xyz\/blog\/#website","url":"https:\/\/2thenew.xyz\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/2thenew.xyz\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"Applying layout to template at Runtime in Grails Application | TO THE NEW Blog","og:description":"There are use cases where we render the template from our action and update some div in the page using ajax. The downside of this approach is when the user hits the url directly in browser address bar and the UI get totally messed up. So to fix this issue we need to apply the","og:url":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/","og:image":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"Applying layout to template at Runtime in Grails Application | TO THE NEW Blog","twitter:description":"There are use cases where we render the template from our action and update some div in the page using ajax. The downside of this approach is when the user hits the url directly in browser address bar and the UI get totally messed up. So to fix this issue we need to apply the","twitter:image":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"12321","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 19:18:39","updated":"2024-02-29 09:30:27","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:\/\/2thenew.xyz\/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:\/\/2thenew.xyz\/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\tApplying layout to template at Runtime in Grails Application\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/2thenew.xyz\/blog"},{"label":"Grails","link":"https:\/\/2thenew.xyz\/blog\/category\/grails\/"},{"label":"Applying layout to template at Runtime in Grails Application","link":"https:\/\/2thenew.xyz\/blog\/applying-layout-to-template-at-runtime-in-grails-application\/"}],"_links":{"self":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts\/12321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/comments?post=12321"}],"version-history":[{"count":0,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts\/12321\/revisions"}],"wp:attachment":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/media?parent=12321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/categories?post=12321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/tags?post=12321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}