{"id":965,"date":"2022-10-11T11:07:19","date_gmt":"2022-10-11T05:37:19","guid":{"rendered":"https:\/\/www.techandtrain.com\/blog\/?p=965"},"modified":"2025-10-22T14:53:53","modified_gmt":"2025-10-22T09:23:53","slug":"liferay-best-practices-part-1","status":"publish","type":"post","link":"https:\/\/www.techandtrain.com\/blog\/2022\/10\/liferay-best-practices-part-1\/","title":{"rendered":"Liferay best practices &#8211; Part 1"},"content":{"rendered":"\n<p>Developers and managers both struggle at times to pre-plan usage of best practices in projects causing many problems which are best avoided. Providing below some learnings &amp; best practices on using and working with Liferay \u2013 Part 1.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Don\u2019t work directly on the Liferay database. Use the groovy script console in CONTROL PANEL or the Liferay User Interface. Use the database at the max as a READ ONLY tool for analysis and debugging &#8211; even this is for extreme cases when recommended like for problems in reindexing and such for BackgroundTaskTable or Lock_ as per Help Center articles only. Stick to Liferay APIs (REST or Java \/ Groovy &#8211; based) for right results. Changing anything at database level can have unintended consequences which are best avoided.<\/li>\n\n\n\n<li>If you need a cloud offering, instead of deploying Liferay on AWS \/ GCP \/ Azure or similar on your own which can be a valid option, also consider and evaluate one of Liferay DXP Self Hosted, Liferay Experience Cloud Self-Managed or Liferay Experience Cloud. They are built on top of GCP with many advanced features pre-baked like CI\/CD depending on the version you select. Liferay\u2019s cloud offering decrease many of the efforts of upgrades, infrastructure, security, patches, CI\/CD, monitoring and more depending on which option you select.<\/li>\n\n\n\n<li>Use as many out of the box features as possible, followed by configuration and lastly customization. There are 100s and 1000s of direct and indirect features for Liferay available on it\u2019s documentation site.<\/li>\n\n\n\n<li>Support tickets are for Liferay product issues, reach out to Customer Success for short term engagements up to multi-month configuration, system administration, customization, audits and such areas. Global services is for executing projects, SME engagements to embed a Liferay expert into your team for technical help, team augmentation, custom packages to support upgrades, performance tuning, DevOps\/Architecture kickstarts, long- and short-term customization development, etc.&nbsp;on Liferay. Reaching out to the right team maximizes chances of a fast resolution for your request. For support issues, refer this blog: https:\/\/liferay.dev\/blogs\/-\/blogs\/working-with-liferay-support<\/li>\n\n\n\n<li>Maintain a DevOps \/ DevSecOps \/ Repository strategy. Use best practices of code merging, quality and more.<\/li>\n\n\n\n<li>Maintain a list of customizations, custom APIs (REST) and modules that are deployed.<\/li>\n\n\n\n<li>Consider headless if you want extreme performance or a very specific User Interface with a non standard JS library or you want to connect with an external app with Liferay as the engine or want a very high LightHouse score. Even without headless high scores are possible in most areas.<\/li>\n\n\n\n<li>Understand LightHouse and PageSpeed Insights score. There are many hidden things which are NOT OBVIOUS \u2013 for example mobile performance scores. Consider investing in parallel into an in-house monitoring tool as well.<\/li>\n\n\n\n<li>Upgrades need preparation and multiple dry runs. Bad data, orphan data and bad customizations create problems in upgrade. So use Liferay in the optimum way as per documentation.<\/li>\n\n\n\n<li>Keep regular watch on End of Life support and premium \/ extended support phases. Pre-plan your upgrades by at least one+ years.<\/li>\n\n\n\n<li>Lift and shift from in-prem to cloud is not a healthy approach using AMIs. Consider setting up Liferay again via backups if you are shifting to AWS\/GCP\/Azure from in-prem. Otherwise consider Liferay Experience Cloud, migration would still be needed though.<\/li>\n\n\n\n<li>Search &amp; database server should be monitored and optimized on routine basis.<\/li>\n\n\n\n<li>Search optimization needs to be a regular habit by the Liferay Administrator as the content and documents get updated. Explore concepts like suggestions, boosting, queries, filters, blueprints and more.<\/li>\n\n\n\n<li>SSO, Authentication, Authorization, Login and Security need advance planning and design. These topics vary widely from customer to customer.<\/li>\n\n\n\n<li>There are many inbuilt apps in areas of collaboration, social, workflow, content, process, documents and more. Explore and use them before doing customizations.<\/li>\n\n\n\n<li>Explore Liferay marketplace for technical &amp; functional accelerators \/ solutions before investing in developing from scratch.<\/li>\n\n\n\n<li>Maintain documentation for your architecture, design, customizations, testing, security, code quality and other areas.<\/li>\n\n\n\n<li>Understand and study portal &amp; system properties, they have many settings which can help in managing various scenarios directly by configuration only.<\/li>\n\n\n\n<li>Explore Liferay University and trainings on it.<\/li>\n\n\n\n<li>Clustered environments are possible in Liferay and consider planning for them right during your architecture, design phase at the start of project rather than later.<\/li>\n\n\n\n<li>Consider usage of Advanced or S3 filestore, Clustering, Headless, Liferay DevStudio, Docker images of Liferay, Virtual instances and similar advanced concepts as need be from early in the project.<\/li>\n\n\n\n<li>Understand Liferay architecture, tooling and internals like Portlets, OSGi, Liferay DevStudio, Configurations, Control Panel, Gogo Shell, Module projects, Dependencies, Modularity and such.<\/li>\n\n\n\n<li>Your important directories and areas in Liferay are: Liferay Home and sub-directories, Filestore \/ document library \u2013 data folder, Custom modules, Configuration files in Liferay Home sub\/directories, Search server, Control Panel, Database, Other peripheral configuration areas like load balancer, application server, networking, clustered environments and such.<\/li>\n\n\n\n<li>Learn to use the Liferay forums, Liferay Blogs, Liferay GitHub, Liferay Help Center, Liferay Community site, Customer &amp; Partner portals of Liferay well. Lot of useful information is available there.<\/li>\n\n\n\n<li>There are in-built areas in the same integrated DXP installation from 7.4 onwards for Digital experience, Portal, Commerce with Analytics. Consider using them from DXP platform before doing customizations for features that are available already.<\/li>\n\n\n\n<li>Explore concepts like debug patch, logging per module and overall logging in Liferay.<\/li>\n\n\n\n<li>Reach out to community slack channel which can be a great way to further connect with Liferay resources.<\/li>\n\n\n\n<li>Keep your portal &amp; components updated with relevant patches &amp; upgrades as per advisory from Liferay.<\/li>\n\n\n\n<li>Refer Liferay resources page with case studies &amp; whitepapers. It has useful information on cloud migration, compatibility matrix, benchmarking, what customers are doing with Liferay and more.<\/li>\n<\/ul>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>https:\/\/help.liferay.com\/hc\/en-us<\/li>\n\n\n\n<li>https:\/\/liferay.dev\/<\/li>\n\n\n\n<li>https:\/\/learn.liferay.com\/dxp\/latest\/en\/liferay-internals.html<\/li>\n\n\n\n<li>https:\/\/learn.liferay.com\/dxp\/latest\/en\/index.html<\/li>\n\n\n\n<li>https:\/\/help.liferay.com\/hc\/en-us\/categories\/5843406636941<\/li>\n\n\n\n<li>https:\/\/marketplace.liferay.com\/<\/li>\n\n\n\n<li>https:\/\/www.liferay.com\/liferay-experience-cloud<\/li>\n\n\n\n<li>https:\/\/learn.liferay.com\/dxp-cloud\/latest\/en\/index.html<\/li>\n\n\n\n<li>https:\/\/www.liferay.com\/resources\/case-studies<\/li>\n\n\n\n<li>https:\/\/www.liferay.com\/resources<\/li>\n<\/ul>\n\n\n\n<p>Email me: Neil@HarwaniSystems.in<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Developers and managers both struggle at times to pre-plan usage of best practices in projects causing many problems which are [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":966,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[192],"tags":[237,236,228],"class_list":["post-965","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-liferay","tag-dxp","tag-liferay-best-practices","tag-liferay-dxp"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/10\/Web-Design.jpg?fit=1920%2C1152&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7do02-fz","jetpack-related-posts":[{"id":1001,"url":"https:\/\/www.techandtrain.com\/blog\/2022\/12\/liferay-upgrade-learnings-part-1\/","url_meta":{"origin":965,"position":0},"title":"Liferay upgrade learnings &#8211; Part 1","author":"Neil Harwani","date":"December 23, 2022","format":false,"excerpt":"Some learnings below from various Liferay upgrades that I have been part of: Upgrades need us to plan various dry runs in advance on non-production environment Divide your upgrade between core \/ database and non-core upgrade Core includes Liferay engine, configurations and database Non-core includes themes, custom code, integrations and\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credit: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/12\/Vortex.png?fit=1200%2C1121&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/12\/Vortex.png?fit=1200%2C1121&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/12\/Vortex.png?fit=1200%2C1121&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/12\/Vortex.png?fit=1200%2C1121&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/12\/Vortex.png?fit=1200%2C1121&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1084,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/07\/liferay-clustering-part-1\/","url_meta":{"origin":965,"position":1},"title":"Liferay clustering &#8211; Part 1","author":"Neil Harwani","date":"July 2, 2023","format":false,"excerpt":"Notes on Liferay clustering: Clustering for High Availability - Liferay Learn\u00a0- Main page for clustering Here is what\u2019s required to create an effectively functional DXP cluster: 1. Liferay DXP\u00a0installed\u00a0on separate application server nodes. 2. A\u00a0database or database cluster\u00a0that\u2019s accessible to all nodes 3. A\u00a0File Store\u00a0that\u2019s accessible to all nodes 4.\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credit: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1030,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/02\/how-to-debug-liferay-some-pointers-part-1\/","url_meta":{"origin":965,"position":2},"title":"How to debug Liferay? &#8211; Some pointers &#8211; Part 1","author":"Neil Harwani","date":"February 19, 2023","format":false,"excerpt":"How to debug Liferay? Some pointers. - Part 1. Many a times, we only check at specific places and forget other areas while debugging. This small blog acts as a checklist to check and debug Liferay. Look at installing and using GLOWROOT Check the slow traces \/ web transactions \/\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credit: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/02\/tool-gf2582e850_1280.png?fit=1200%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/02\/tool-gf2582e850_1280.png?fit=1200%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/02\/tool-gf2582e850_1280.png?fit=1200%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/02\/tool-gf2582e850_1280.png?fit=1200%2C1200&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/02\/tool-gf2582e850_1280.png?fit=1200%2C1200&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1151,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/10\/security-cookie-links-www-liferay-com-part-1\/","url_meta":{"origin":965,"position":3},"title":"Security &amp; Cookie links @ www.Liferay.com &#8211; Part 1","author":"Neil Harwani","date":"October 20, 2023","format":false,"excerpt":"List of Liferay security & cookie related links which includes Cookies, XSS, CSRF, OWASP, CORS, SSO, IAM, Service Action Policies and more: Known vulnerabilities:\u00a0Known Vulnerabilities - Liferay Security statement:\u00a0Security Statement | Liferay LXC Cloud security:\u00a0DXP Cloud Security | Liferay Securing Liferay page:\u00a0Securing Liferay - Liferay Learn Help center DXP 7.0:\u00a0Liferay\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credits: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/10\/Safe.jpg?fit=1200%2C1043&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/10\/Safe.jpg?fit=1200%2C1043&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/10\/Safe.jpg?fit=1200%2C1043&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/10\/Safe.jpg?fit=1200%2C1043&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/10\/Safe.jpg?fit=1200%2C1043&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1163,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/11\/what-are-some-of-the-best-practices-for-liferay-using-three-separate-gpts\/","url_meta":{"origin":965,"position":4},"title":"What are some of the best practices for Liferay? &#8211; Using three separate GPTs","author":"Neil Harwani","date":"November 20, 2023","format":false,"excerpt":"Generated using my GPT -\u00a0Liferay Guide - Via official sources of Liferay:\u00a0https:\/\/chat.openai.com\/g\/g-4G5XuBdpL-liferay-guide-via-official-sources-of-liferay Adhering to best practices in Liferay ensures that you leverage the platform effectively for enterprise solutions. Here are some key best practices to consider: 1.\u00a0Modular Development: Embrace Liferay\u2019s modular development approach using OSGi. Develop customizations in modules, rather\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credits: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Fantasy-Portal.jpg?fit=1200%2C909&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Fantasy-Portal.jpg?fit=1200%2C909&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Fantasy-Portal.jpg?fit=1200%2C909&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Fantasy-Portal.jpg?fit=1200%2C909&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Fantasy-Portal.jpg?fit=1200%2C909&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1053,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/03\/elasticsearch-with-liferay-notes-links-part-1\/","url_meta":{"origin":965,"position":5},"title":"Elasticsearch with Liferay &#8211; Notes &amp; Links &#8211; Part 1","author":"Neil Harwani","date":"March 26, 2023","format":false,"excerpt":"Below are the important notes & links for configuring Liferay DXP with Elasticsearch. Configuring Elasticsearch \u2013 Liferay Help Center\u00a0- DXP 7.0 Installing Elasticsearch - Liferay Learn\u00a0- DXP latest Securing Elasticsearch 6.5 with X-Pack \u2013 Liferay Help Center\u00a0- DXP 7.0 with ES 6.5 Securing Elasticsearch - Liferay Learn\u00a0- DXP 7.0\/7.1\/7.2\/7.3\/7.4 latest\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credit: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/03\/freelancer-763730_1920.jpg?fit=1200%2C797&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/03\/freelancer-763730_1920.jpg?fit=1200%2C797&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/03\/freelancer-763730_1920.jpg?fit=1200%2C797&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/03\/freelancer-763730_1920.jpg?fit=1200%2C797&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/03\/freelancer-763730_1920.jpg?fit=1200%2C797&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts\/965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/comments?post=965"}],"version-history":[{"count":9,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts\/965\/revisions"}],"predecessor-version":[{"id":1037,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts\/965\/revisions\/1037"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/media\/966"}],"wp:attachment":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/media?parent=965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/categories?post=965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/tags?post=965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}