{"id":245,"date":"2025-04-19T03:12:55","date_gmt":"2025-04-18T22:12:55","guid":{"rendered":"https:\/\/doozyspot.com\/?p=245"},"modified":"2025-04-19T03:15:09","modified_gmt":"2025-04-18T22:15:09","slug":"advanced-salesforce-lwc-developer-checklist-technical-edition","status":"publish","type":"post","link":"https:\/\/doozyspot.com\/?p=245","title":{"rendered":"Advanced Salesforce LWC Developer Checklist (Technical Edition)"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Component Architecture<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Each component handles <strong>one UI role or feature<\/strong> (SRP enforced)<\/li>\n\n\n\n<li>Inputs (<code>@api<\/code>) are <strong>readonly and sanitized<\/strong><\/li>\n\n\n\n<li>Component hierarchy depth \u2264 3, slots used for composition<\/li>\n\n\n\n<li><strong>Shadow DOM usage<\/strong> is considered for style encapsulation (if using native shadow)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Reactivity &amp; Data Flow<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Avoid unnecessary <code>@track<\/code> \u2013 only use when mutating nested structures<\/li>\n\n\n\n<li>Use <code>Object.freeze()<\/code> for immutable inputs<\/li>\n\n\n\n<li>Prefer <code>getter<\/code> logic over template <code>inline ternaries<\/code><\/li>\n\n\n\n<li><code>@api<\/code> properties are never mutated internally (unidirectional data flow)<\/li>\n\n\n\n<li>Avoid computed getter dependencies on non-tracked\/non-reactive state<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Lifecycle Control<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>connectedCallback()<\/code> is used for setup logic only\u2014no UI code<\/li>\n\n\n\n<li><code>renderedCallback()<\/code> guarded with <code>this.hasRendered = true<\/code><\/li>\n\n\n\n<li>Cleanup logic (e.g. event listeners, timers) in <code>disconnectedCallback()<\/code><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">jsCopyEdit<code>disconnectedCallback() {\n  clearInterval(this.refreshTimer);\n}\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">List Rendering<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <code>for:each<\/code> with <code>key={uniqueId}<\/code> for all dynamic lists<\/li>\n\n\n\n<li>Avoid nested iterations\u2014flatten data in JS if needed<\/li>\n\n\n\n<li>Use <strong>virtual scrolling<\/strong> or pagination for large datasets<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Apex Integration (Wire &amp; Imperative)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>@wire<\/code> with <code>cacheable=true<\/code> for read-only, reactive fetches<\/li>\n\n\n\n<li>Imperative Apex used <strong>only<\/strong> for button-driven actions<\/li>\n\n\n\n<li>Use <code>try\/catch<\/code> + error handler for all imperative calls<\/li>\n\n\n\n<li>Apex errors bubble via <code>CustomEvent('error', detail)<\/code><\/li>\n\n\n\n<li>Avoid <code>JSON.stringify()<\/code>\/<code>parse()<\/code> for Apex serialization unless required<\/li>\n\n\n\n<li>Validate Apex input shapes before sending (avoid undefined\/nulls)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Event &amp; State Management<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <code>CustomEvent<\/code> with <code>composed: true, bubbles: true<\/code> for cross-DOM events<\/li>\n\n\n\n<li>Maintain global pub\/sub pattern (if needed) in a shared utility module<\/li>\n\n\n\n<li>Avoid storing state in the DOM; use tracked vars, not <code>dataset<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Security &amp; Locker Compliance<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No direct access to <code>window<\/code>, <code>document<\/code> \u2013 use guarded wrappers<\/li>\n\n\n\n<li>External scripts only loaded via <code>loadScript()<\/code> + allowlist in CSP<\/li>\n\n\n\n<li>Use <code>DOMPurify<\/code> or input filters before injecting into innerHTML (if applicable)<\/li>\n\n\n\n<li>Follow Locker-compliant style scoping (no global selectors)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">UI Rendering Efficiency<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>lwc:if<\/code> used for branching logic over <code>if:true<\/code><\/li>\n\n\n\n<li>Expensive render paths split with <code>requestAnimationFrame()<\/code> or <code>setTimeout()<\/code><\/li>\n\n\n\n<li>DOM queries (<code>querySelector<\/code>, <code>querySelectorAll<\/code>) <strong>cached in memory<\/strong><\/li>\n\n\n\n<li>Styles use SLDS utility classes; no hardcoded px values unless scoped<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Debugging &amp; Monitoring<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>LWC Inspector used to monitor property changes &amp; component tree<\/li>\n\n\n\n<li>Chrome DevTools \u2192 Performance tab used to profile slow renders<\/li>\n\n\n\n<li>All external API calls wrapped with timers for benchmarking<\/li>\n\n\n\n<li>CPU-heavy logic timed and pushed to logs in debug builds<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Testing &amp; Automation<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Jest unit tests mock wire + simulate user events (<code>fireEvent<\/code>)<\/li>\n\n\n\n<li>All imperative Apex functions covered with <code>jest.fn()<\/code><\/li>\n\n\n\n<li><code>createElement()<\/code> used for DOM-level testing in Jest<\/li>\n\n\n\n<li>Integration tests confirm data flow across <code>@api<\/code> boundaries<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Refresh &amp; Navigation<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Record\/field updates use LDS wire &amp; <code>getRecordNotifyChange()<\/code><\/li>\n\n\n\n<li>Navigation handled via <code>NavigationMixin.Navigate()<\/code> or <code>PageReferenceUtils<\/code><\/li>\n\n\n\n<li>No full page reloads or <code>window.location.href<\/code> usage<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Governor Limit Handling (Server-Side Awareness)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Apex logs reviewed for SOQL, CPU, Heap, DML stats<\/li>\n\n\n\n<li>Lists passed to Apex are size-checked (<code>records.length &lt; 200<\/code>)<\/li>\n\n\n\n<li>SOQL queries outside of loops, batched server logic<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Final Technical Validation Checklist<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Category<\/th><th>Checked \u2705<\/th><\/tr><\/thead><tbody><tr><td>Lifecycle Hooks Guarded<\/td><td>\u2714\ufe0f<\/td><\/tr><tr><td>DOM Access Cached<\/td><td>\u2714\ufe0f<\/td><\/tr><tr><td>Apex Inputs Validated<\/td><td>\u2714\ufe0f<\/td><\/tr><tr><td>Event Propagation Controlled<\/td><td>\u2714\ufe0f<\/td><\/tr><tr><td>Shadow DOM Compliant<\/td><td>\u2714\ufe0f<\/td><\/tr><tr><td>Jest Tests Written<\/td><td>\u2714\ufe0f<\/td><\/tr><tr><td>External Scripts Deferred<\/td><td>\u2714\ufe0f<\/td><\/tr><tr><td>LWC Inspector Profiling Done<\/td><td>\u2714\ufe0f<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Component Architecture Reactivity &amp; Data Flow Lifecycle Control jsCopyEditdisconnectedCallback() { clearInterval(this.refreshTimer); } List Rendering Apex Integration (Wire &amp; Imperative) Event &amp; State Management Security &amp; Locker Compliance UI Rendering Efficiency Debugging &amp; Monitoring Testing &amp; Automation Refresh &amp; Navigation Governor Limit Handling (Server-Side Awareness) Final Technical Validation Checklist Category Checked \u2705 Lifecycle Hooks Guarded \u2714\ufe0f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[17,9],"tags":[14,5],"class_list":["post-245","post","type-post","status-publish","format-standard","hentry","category-lwc","category-salesforce","tag-lwc","tag-salesforce"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Advanced Salesforce LWC Developer Checklist (Technical Edition) - DoozySpot<\/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:\/\/doozyspot.com\/?p=245\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Advanced Salesforce LWC Developer Checklist (Technical Edition) - DoozySpot\" \/>\n<meta property=\"og:description\" content=\"Component Architecture Reactivity &amp; Data Flow Lifecycle Control jsCopyEditdisconnectedCallback() { clearInterval(this.refreshTimer); } List Rendering Apex Integration (Wire &amp; Imperative) Event &amp; State Management Security &amp; Locker Compliance UI Rendering Efficiency Debugging &amp; Monitoring Testing &amp; Automation Refresh &amp; Navigation Governor Limit Handling (Server-Side Awareness) Final Technical Validation Checklist Category Checked \u2705 Lifecycle Hooks Guarded \u2714\ufe0f [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/doozyspot.com\/?p=245\" \/>\n<meta property=\"og:site_name\" content=\"DoozySpot\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-18T22:12:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-18T22:15:09+00:00\" \/>\n<meta name=\"author\" content=\"doozyspot\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"doozyspot\" \/>\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:\/\/doozyspot.com\/?p=245#article\",\"isPartOf\":{\"@id\":\"https:\/\/doozyspot.com\/?p=245\"},\"author\":{\"name\":\"doozyspot\",\"@id\":\"https:\/\/doozyspot.com\/#\/schema\/person\/bccb52398479b1354683df33f84154d6\"},\"headline\":\"Advanced Salesforce LWC Developer Checklist (Technical Edition)\",\"datePublished\":\"2025-04-18T22:12:55+00:00\",\"dateModified\":\"2025-04-18T22:15:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/doozyspot.com\/?p=245\"},\"wordCount\":415,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/doozyspot.com\/#organization\"},\"keywords\":[\"LWC\",\"Salesforce\"],\"articleSection\":[\"LWC\",\"Salesforce\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/doozyspot.com\/?p=245#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/doozyspot.com\/?p=245\",\"url\":\"https:\/\/doozyspot.com\/?p=245\",\"name\":\"Advanced Salesforce LWC Developer Checklist (Technical Edition) - DoozySpot\",\"isPartOf\":{\"@id\":\"https:\/\/doozyspot.com\/#website\"},\"datePublished\":\"2025-04-18T22:12:55+00:00\",\"dateModified\":\"2025-04-18T22:15:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/doozyspot.com\/?p=245#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/doozyspot.com\/?p=245\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/doozyspot.com\/?p=245#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/doozyspot.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Advanced Salesforce LWC Developer Checklist (Technical Edition)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/doozyspot.com\/#website\",\"url\":\"https:\/\/doozyspot.com\/\",\"name\":\"DoozySpot\",\"description\":\"One of its kind in knowledge base\",\"publisher\":{\"@id\":\"https:\/\/doozyspot.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/doozyspot.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/doozyspot.com\/#organization\",\"name\":\"DoozySpot\",\"url\":\"https:\/\/doozyspot.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/doozyspot.com\/#\/schema\/logo\/image\/\",\"url\":\"http:\/\/doozyspot.com\/wp-content\/uploads\/2023\/03\/download.jpg\",\"contentUrl\":\"http:\/\/doozyspot.com\/wp-content\/uploads\/2023\/03\/download.jpg\",\"width\":1200,\"height\":1200,\"caption\":\"DoozySpot\"},\"image\":{\"@id\":\"https:\/\/doozyspot.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/doozyspot.com\/#\/schema\/person\/bccb52398479b1354683df33f84154d6\",\"name\":\"doozyspot\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/doozyspot.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2584f56a7b7945fd49a8fdf22dd31fa7baf3cf6f10370736f2d2895c7d9219f4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2584f56a7b7945fd49a8fdf22dd31fa7baf3cf6f10370736f2d2895c7d9219f4?s=96&d=mm&r=g\",\"caption\":\"doozyspot\"},\"sameAs\":[\"http:\/\/doozyspot.com\"],\"url\":\"https:\/\/doozyspot.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Advanced Salesforce LWC Developer Checklist (Technical Edition) - DoozySpot","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:\/\/doozyspot.com\/?p=245","og_locale":"en_US","og_type":"article","og_title":"Advanced Salesforce LWC Developer Checklist (Technical Edition) - DoozySpot","og_description":"Component Architecture Reactivity &amp; Data Flow Lifecycle Control jsCopyEditdisconnectedCallback() { clearInterval(this.refreshTimer); } List Rendering Apex Integration (Wire &amp; Imperative) Event &amp; State Management Security &amp; Locker Compliance UI Rendering Efficiency Debugging &amp; Monitoring Testing &amp; Automation Refresh &amp; Navigation Governor Limit Handling (Server-Side Awareness) Final Technical Validation Checklist Category Checked \u2705 Lifecycle Hooks Guarded \u2714\ufe0f [&hellip;]","og_url":"https:\/\/doozyspot.com\/?p=245","og_site_name":"DoozySpot","article_published_time":"2025-04-18T22:12:55+00:00","article_modified_time":"2025-04-18T22:15:09+00:00","author":"doozyspot","twitter_card":"summary_large_image","twitter_misc":{"Written by":"doozyspot","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/doozyspot.com\/?p=245#article","isPartOf":{"@id":"https:\/\/doozyspot.com\/?p=245"},"author":{"name":"doozyspot","@id":"https:\/\/doozyspot.com\/#\/schema\/person\/bccb52398479b1354683df33f84154d6"},"headline":"Advanced Salesforce LWC Developer Checklist (Technical Edition)","datePublished":"2025-04-18T22:12:55+00:00","dateModified":"2025-04-18T22:15:09+00:00","mainEntityOfPage":{"@id":"https:\/\/doozyspot.com\/?p=245"},"wordCount":415,"commentCount":0,"publisher":{"@id":"https:\/\/doozyspot.com\/#organization"},"keywords":["LWC","Salesforce"],"articleSection":["LWC","Salesforce"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/doozyspot.com\/?p=245#respond"]}]},{"@type":"WebPage","@id":"https:\/\/doozyspot.com\/?p=245","url":"https:\/\/doozyspot.com\/?p=245","name":"Advanced Salesforce LWC Developer Checklist (Technical Edition) - DoozySpot","isPartOf":{"@id":"https:\/\/doozyspot.com\/#website"},"datePublished":"2025-04-18T22:12:55+00:00","dateModified":"2025-04-18T22:15:09+00:00","breadcrumb":{"@id":"https:\/\/doozyspot.com\/?p=245#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/doozyspot.com\/?p=245"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/doozyspot.com\/?p=245#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/doozyspot.com\/"},{"@type":"ListItem","position":2,"name":"Advanced Salesforce LWC Developer Checklist (Technical Edition)"}]},{"@type":"WebSite","@id":"https:\/\/doozyspot.com\/#website","url":"https:\/\/doozyspot.com\/","name":"DoozySpot","description":"One of its kind in knowledge base","publisher":{"@id":"https:\/\/doozyspot.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/doozyspot.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/doozyspot.com\/#organization","name":"DoozySpot","url":"https:\/\/doozyspot.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/doozyspot.com\/#\/schema\/logo\/image\/","url":"http:\/\/doozyspot.com\/wp-content\/uploads\/2023\/03\/download.jpg","contentUrl":"http:\/\/doozyspot.com\/wp-content\/uploads\/2023\/03\/download.jpg","width":1200,"height":1200,"caption":"DoozySpot"},"image":{"@id":"https:\/\/doozyspot.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/doozyspot.com\/#\/schema\/person\/bccb52398479b1354683df33f84154d6","name":"doozyspot","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/doozyspot.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2584f56a7b7945fd49a8fdf22dd31fa7baf3cf6f10370736f2d2895c7d9219f4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2584f56a7b7945fd49a8fdf22dd31fa7baf3cf6f10370736f2d2895c7d9219f4?s=96&d=mm&r=g","caption":"doozyspot"},"sameAs":["http:\/\/doozyspot.com"],"url":"https:\/\/doozyspot.com\/?author=1"}]}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/doozyspot.com\/index.php?rest_route=\/wp\/v2\/posts\/245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/doozyspot.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/doozyspot.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/doozyspot.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/doozyspot.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=245"}],"version-history":[{"count":1,"href":"https:\/\/doozyspot.com\/index.php?rest_route=\/wp\/v2\/posts\/245\/revisions"}],"predecessor-version":[{"id":246,"href":"https:\/\/doozyspot.com\/index.php?rest_route=\/wp\/v2\/posts\/245\/revisions\/246"}],"wp:attachment":[{"href":"https:\/\/doozyspot.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/doozyspot.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/doozyspot.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}