{"id":1942,"date":"2017-10-12T08:05:20","date_gmt":"2017-10-12T08:05:20","guid":{"rendered":"https:\/\/www.enprowess.com\/blogs\/?p=1942"},"modified":"2022-04-28T10:54:08","modified_gmt":"2022-04-28T05:24:08","slug":"ext-plugin-liferay-7-just-5-steps","status":"publish","type":"post","link":"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/","title":{"rendered":"Ext Plugin with Liferay 7 in just 5 steps"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p>The Liferay developer community has been waiting since long for Ext with Liferay 7 and it got recently released with GA4. This post\u00a0will be focused on Ext Plugin and how to implement Ext Plugin in Liferay 7\/ DXP. In case you are new to Liferay and don\u2019t know what is EXT, here is quick background.<\/p>\n<p><strong>What is Ext?<\/strong><\/p>\n<p>Ext is stand for extension plugin\/environment. Ext plugins are most powerful tool used to extend Liferay Portal. The customization which can\u2019t be done using Hook, can be achieved with Ext. Liferay supports the following use cases for Ext plugin.<\/p>\n<p>1. Custom implementation for any beans which declared in Liferay Portal\u2019s Spring files. (Wherever possible use service wrappers instead of an Ext plugin). Liferay 7 removed many beans, so make sure your overriding beans are still relevant.<\/p>\n<p>2. Overwriting a class in Liferay Portal core JAR.<\/p>\n<p>3. Modify Liferay Portal\u2019s web.xml file.<br \/>\n&nbsp;<br \/>\nExt plugins are not recommended unless there is no other way to achieve the goal. Ext plugin can only be created using Plugin SDK.<\/p>\n<p>&nbsp;<br \/>\n<strong>Here are some pre-requisites:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/web.liferay.com\/downloads\/liferay-projects\/liferay-ide\">Liferay 7 IDE<\/a><\/li>\n<li><a href=\"https:\/\/www.liferay.com\/downloads\">Liferay 7 Plugin SDK<\/a><\/li>\n<li><a href=\"https:\/\/www.liferay.com\/downloads\">Liferay 7 Tomcat community Edition (must be CE 7.0GA4 or above)<\/a><\/li>\n<\/ul>\n<p>&nbsp;<br \/>\nLet\u2019s look at Ext with Liferay 7 by taking example of how to override any service implementation class using Ext.<br \/>\n&nbsp;<br \/>\n<strong>Here are the steps:<\/strong><\/p>\n<p><strong>1. First of all create Ext Plugin:<\/strong><\/p>\n<ul>\n<li>To create , Click File menu \u2192 New \u2192 Liferay Plugin Provide appropriate name for module, select Build type as \u201cAnt(liferay-plugin-sdk)\u201d and Plugin type as \u201cExt\u201d.<\/li>\n<li>If you have not configured Plugin SDK yet click <strong>Next<\/strong> and configure Plugin SDK.<\/li>\n<\/ul>\n<p>&nbsp;<br \/>\n<strong>2. Create ext-spring.xml file:<\/strong><\/p>\n<ul>\n<li>Navigate to <strong>ext-impl\/src<\/strong> and create META-INF folder and create ext-spring.xml file inside it.<\/li>\n<\/ul>\n<p><strong>\u00a0<\/strong><br \/>\n<strong>3. Defining custom Bean:<\/strong><\/p>\n<ul>\n<li>To override method of any XXXLocalServiceImpl you need to define custom bean definition in ext-spring.xml.<\/li>\n<li>You can get bean definition from spring configuration files mentioned in spring.configs property of portal.properties file.<br \/>\n&nbsp;<br \/>\n \tExample, To override method of <strong>UserLocalServiceImpl<\/strong> you need to add following bean definition inside beans tag in ext-spring.xml file. UserLocalServiceImpl bean details are available in portal-spring.xml.&nbsp;<\/p>\n<div style=\"margin:10px;border: 1px solid black;width: 500px;\"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean class=<em>&#8220;com.custom.user.CustomUserLocalServiceImpl&#8221;<\/em>\u00a0 \u00a0 \u00a0&nbsp;&nbsp;&nbsp;&nbsp;id=<em>&#8220;com.liferay.portal.kernel.service.UserLocalService&#8221;<\/em> \/&gt;<br \/>\n\u00a0 &nbsp;&nbsp;&nbsp;&nbsp;&lt;\/ bean&gt;<\/strong><\/div>\n<p><strong>\u00a0<\/strong><\/li>\n<\/ul>\n<p><strong>4. Create Custom Implementation class:<\/strong><\/p>\n<ul>\n<li>Create <strong>CustomUserLocalServiceImpl<\/strong> class which we have mentioned before in bean definition. It must extends UserLocalServiceImpl.<br \/>\n \tExample,<\/p>\n<div style=\"margin:10px;border: 1px solid black;width: 600px;\"><strong>&nbsp;&nbsp;&nbsp;&nbsp;public class CustomUserLocalServiceImpl extends UserLocalServiceImpl<\/strong><\/div>\n<\/li>\n<li>Now you can override any method of UserLocalServiceImpl in CustomUserLocalServiceImpl and there is no need to copy entire code of the original class, just override the method with your business logic.<\/li>\n<\/ul>\n<p><strong>5. Deployment Steps:<\/strong><\/p>\n<p>Ext plugin is now ready for deployment. Before we move ahead make sure <strong>\u201capp.server.dir\u201d<\/strong> property is configured in <strong>build.[username].properties <\/strong>file.<\/p>\n<ul>\n<li>Deploying plugin using IDE:<\/li>\n<li>Using Ant tasks available in IDE you need to use \u201cdeploy\u201d or \u201cdirect-deploy\u201d to deploy your Ext plugin<\/li>\n<li>Or drag Ext plugin from Project explorer onto server you configured in IDE. IDE automatically restart server to detect and publish Ext plugin.<br \/>\nThe direct-deploy task will target all changes directly to the appropriate folder in Liferay Portal. The deploy task will generate .war file with all your changes in it and then deploys it to your Liferay Portal. <\/li>\n<li>Build Successful message indicates that your plugin is being deployed. Liferay Portal console should show a message like this:<br \/>\n<\/p>\n<div style=\"margin:10px;border: 1px solid black;width: 600px;\">&nbsp;&nbsp;&nbsp;&nbsp;<strong>Extension environment for [your project]-ext has been applied. You must<\/strong> <strong>reboot the server and redeploy all other plugins.<\/strong><\/div>\n<li>Now restart portal instance so that it will detect and publish the Ext plugin.<\/li>\n<\/ul>\n<p>Congratulations, you are done with Ext plugin. I hope this post will help you for customization with Liferay Portal.<\/p>\n<p>&nbsp;<\/p>\n<p>Post by,<\/p>\n<p>Zeenesh Patel<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; The Liferay developer community has been waiting since long for Ext with Liferay 7 and it got recently released with GA4. This post\u00a0will be focused on Ext Plugin and how to implement Ext Plugin in Liferay 7\/ DXP. In case you are new to Liferay and don\u2019t know what is EXT, here is quick&hellip; <a class=\"more-link\" href=\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/\">Continue reading <span class=\"screen-reader-text\">Ext Plugin with Liferay 7 in just 5 steps<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1979,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,46],"tags":[7,60,18,19,61],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ext Plugin with Liferay 7 in just 5 steps - EnProwess Blog<\/title>\n<meta name=\"description\" content=\"Liferay and don\u2019t know what is EXT here is quick background. Hear are some 5 step to how to override any service implementation class using Ext\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ext Plugin with Liferay 7 in just 5 steps - EnProwess Blog\" \/>\n<meta property=\"og:description\" content=\"Liferay and don\u2019t know what is EXT here is quick background. Hear are some 5 step to how to override any service implementation class using Ext\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/\" \/>\n<meta property=\"og:site_name\" content=\"EnProwess Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-10-12T08:05:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-28T05:24:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/10\/liferay_7_Ext.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"139\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\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\":\"Organization\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#organization\",\"name\":\"EnProwess\",\"url\":\"https:\/\/www.enprowess.com\/blogs\/\",\"sameAs\":[],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#logo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2021\/07\/enprowess_logo.jpg\",\"contentUrl\":\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2021\/07\/enprowess_logo.jpg\",\"width\":1057,\"height\":697,\"caption\":\"EnProwess\"},\"image\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#website\",\"url\":\"https:\/\/www.enprowess.com\/blogs\/\",\"name\":\"EnProwess Blog\",\"description\":\"Your Enterprise solution partner\",\"publisher\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.enprowess.com\/blogs\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/10\/liferay_7_Ext.jpg\",\"contentUrl\":\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/10\/liferay_7_Ext.jpg\",\"width\":700,\"height\":139,\"caption\":\"Ext Plugin with Liferay 7 in just 5 steps\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#webpage\",\"url\":\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/\",\"name\":\"Ext Plugin with Liferay 7 in just 5 steps - EnProwess Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#primaryimage\"},\"datePublished\":\"2017-10-12T08:05:20+00:00\",\"dateModified\":\"2022-04-28T05:24:08+00:00\",\"description\":\"Liferay and don\\u2019t know what is EXT here is quick background. Hear are some 5 step to how to override any service implementation class using Ext\",\"breadcrumb\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\/\/www.enprowess.com\/blogs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Liferay\",\"item\":\"https:\/\/www.enprowess.com\/blogs\/category\/liferay\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Ext Plugin with Liferay 7 in just 5 steps\"}]},{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#\/schema\/person\/cb84840e7dba202419065ea1c9fe7f11\"},\"headline\":\"Ext Plugin with Liferay 7 in just 5 steps\",\"datePublished\":\"2017-10-12T08:05:20+00:00\",\"dateModified\":\"2022-04-28T05:24:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#webpage\"},\"wordCount\":637,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/10\/liferay_7_Ext.jpg\",\"keywords\":[\"enprowess\",\"Ext Plugin\",\"Liferay 7\",\"Liferay DXP\",\"Liferay Ext\"],\"articleSection\":[\"Liferay\",\"Liferay DXP\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#\/schema\/person\/cb84840e7dba202419065ea1c9fe7f11\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b43445b202a083f6e4a2f2e7d6f43d62?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b43445b202a083f6e4a2f2e7d6f43d62?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"url\":\"https:\/\/www.enprowess.com\/blogs\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ext Plugin with Liferay 7 in just 5 steps - EnProwess Blog","description":"Liferay and don\u2019t know what is EXT here is quick background. Hear are some 5 step to how to override any service implementation class using Ext","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:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/","og_locale":"en_US","og_type":"article","og_title":"Ext Plugin with Liferay 7 in just 5 steps - EnProwess Blog","og_description":"Liferay and don\u2019t know what is EXT here is quick background. Hear are some 5 step to how to override any service implementation class using Ext","og_url":"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/","og_site_name":"EnProwess Blog","article_published_time":"2017-10-12T08:05:20+00:00","article_modified_time":"2022-04-28T05:24:08+00:00","og_image":[{"width":700,"height":139,"url":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/10\/liferay_7_Ext.jpg","type":"image\/jpeg"}],"twitter_card":"summary","twitter_misc":{"Written by":"admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.enprowess.com\/blogs\/#organization","name":"EnProwess","url":"https:\/\/www.enprowess.com\/blogs\/","sameAs":[],"logo":{"@type":"ImageObject","@id":"https:\/\/www.enprowess.com\/blogs\/#logo","inLanguage":"en-US","url":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2021\/07\/enprowess_logo.jpg","contentUrl":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2021\/07\/enprowess_logo.jpg","width":1057,"height":697,"caption":"EnProwess"},"image":{"@id":"https:\/\/www.enprowess.com\/blogs\/#logo"}},{"@type":"WebSite","@id":"https:\/\/www.enprowess.com\/blogs\/#website","url":"https:\/\/www.enprowess.com\/blogs\/","name":"EnProwess Blog","description":"Your Enterprise solution partner","publisher":{"@id":"https:\/\/www.enprowess.com\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.enprowess.com\/blogs\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#primaryimage","inLanguage":"en-US","url":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/10\/liferay_7_Ext.jpg","contentUrl":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/10\/liferay_7_Ext.jpg","width":700,"height":139,"caption":"Ext Plugin with Liferay 7 in just 5 steps"},{"@type":"WebPage","@id":"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#webpage","url":"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/","name":"Ext Plugin with Liferay 7 in just 5 steps - EnProwess Blog","isPartOf":{"@id":"https:\/\/www.enprowess.com\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#primaryimage"},"datePublished":"2017-10-12T08:05:20+00:00","dateModified":"2022-04-28T05:24:08+00:00","description":"Liferay and don\u2019t know what is EXT here is quick background. Hear are some 5 step to how to override any service implementation class using Ext","breadcrumb":{"@id":"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.enprowess.com\/blogs\/"},{"@type":"ListItem","position":2,"name":"Liferay","item":"https:\/\/www.enprowess.com\/blogs\/category\/liferay\/"},{"@type":"ListItem","position":3,"name":"Ext Plugin with Liferay 7 in just 5 steps"}]},{"@type":"TechArticle","@id":"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#article","isPartOf":{"@id":"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#webpage"},"author":{"@id":"https:\/\/www.enprowess.com\/blogs\/#\/schema\/person\/cb84840e7dba202419065ea1c9fe7f11"},"headline":"Ext Plugin with Liferay 7 in just 5 steps","datePublished":"2017-10-12T08:05:20+00:00","dateModified":"2022-04-28T05:24:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#webpage"},"wordCount":637,"commentCount":0,"publisher":{"@id":"https:\/\/www.enprowess.com\/blogs\/#organization"},"image":{"@id":"https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#primaryimage"},"thumbnailUrl":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/10\/liferay_7_Ext.jpg","keywords":["enprowess","Ext Plugin","Liferay 7","Liferay DXP","Liferay Ext"],"articleSection":["Liferay","Liferay DXP"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.enprowess.com\/blogs\/ext-plugin-liferay-7-just-5-steps\/#respond"]}]},{"@type":"Person","@id":"https:\/\/www.enprowess.com\/blogs\/#\/schema\/person\/cb84840e7dba202419065ea1c9fe7f11","name":"admin","image":{"@type":"ImageObject","@id":"https:\/\/www.enprowess.com\/blogs\/#personlogo","inLanguage":"en-US","url":"https:\/\/secure.gravatar.com\/avatar\/b43445b202a083f6e4a2f2e7d6f43d62?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b43445b202a083f6e4a2f2e7d6f43d62?s=96&d=mm&r=g","caption":"admin"},"url":"https:\/\/www.enprowess.com\/blogs\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/posts\/1942"}],"collection":[{"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/comments?post=1942"}],"version-history":[{"count":39,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/posts\/1942\/revisions"}],"predecessor-version":[{"id":1982,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/posts\/1942\/revisions\/1982"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/media\/1979"}],"wp:attachment":[{"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/media?parent=1942"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/categories?post=1942"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/tags?post=1942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}