{"id":1822,"date":"2017-05-23T07:39:48","date_gmt":"2017-05-23T07:39:48","guid":{"rendered":"https:\/\/www.enprowess.com\/blogs\/?p=1822"},"modified":"2022-04-27T15:58:16","modified_gmt":"2022-04-27T10:28:16","slug":"liferay-dxp-custom-notification","status":"publish","type":"post","link":"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/","title":{"rendered":"Learn Liferay DXP custom notification in 5 minute"},"content":{"rendered":"<p>Welcome to EnProwess blogs. In this post, I am going to talk about notification feature and how to create custom notification in DXP. Before we talk about notification feature in DXP, lets understand what has changed in DXP with compare to Liferay 6.2.<br \/>\n<br \/>\n<strong><\/p>\n<h4>In Liferay 6.2, <\/h4>\n<p><\/strong><\/p>\n<ul>\n<li>There is Notification display portlet. This portlet can be used to display notification to all or specific user in portal.<\/li>\n<li>Notification display portlet is also embedder in docbar to display number of notification waiting for user.<\/li>\n<li>XML configuration required to define custom notifications class, notification definition etc.<\/li>\n<\/ul>\n<p>\n<strong><\/p>\n<h4>In DXP, <\/h4>\n<p><\/strong><\/p>\n<ul>\n<li>Notification display portlet is no longer available.<\/li>\n<li>Notification displays in control panel and docbar.<\/li>\n<li>XML based configuration is not required. In DXP Liferay has provided \u201c<strong>UserNotificationHandler<\/strong>\u201d OSGI handler service to implement custom notification. You can learn about this handler from <a href=\"https:\/\/dev.liferay.com\/develop\/reference\/-\/knowledge_base\/7-0\/portlet-descriptor-to-osgi-service-property-map\">https:\/\/dev.liferay.com\/develop\/reference\/-\/knowledge_base\/7-0\/portlet-descriptor-to-osgi-service-property-map<\/a><\/li>\n<\/ul>\n<p>\nNow let\u2019s understand how to define custom notification in DXP. Before you start further, ensure you have following prerequisite installed\/configured<\/p>\n<ul>\n<li><a href=\"http:\/\/www.oracle.com\/technetwork\/java\/javase\/downloads\/jdk8-downloads-2133151.html\">Java 1.8<\/a><\/li>\n<li><a href=\"https:\/\/www.liferay.com\/downloads\">Liferay 7 must be installed.<\/a><\/li>\n<li><a href=\"https:\/\/web.liferay.com\/downloads\/liferay-projects\/liferay-ide\">Liferay Developer studio<\/a><\/li>\n<\/ul>\n<p>\nFollowing are the steps to implement custom notification.<br \/>\n<\/p>\n<ol>\n<li><strong><br \/>\n<h4>Create module in Liferay workspace:<\/h4>\n<p><\/strong><\/li>\n<\/ol>\n<p>To create Liferay modules, Click File menu \u2192 Click New \u2192 Select Liferay Module Project. Provide appropriate name for module and click finish.<\/p>\n<ol start=\"2\">\n<li><strong><br \/>\n<h4>Implement Custom User Notification Handler Class:<\/h4>\n<p><\/strong><\/li>\n<\/ol>\n<ul>\n<li>Create SendNotificationToUserHandler class and extends <strong><em>BaseUserNotificationHandler <\/em><\/strong><em>abstract class<\/em>.<\/li>\n<li><strong><em>BaseUserNotificationHandler<\/em><\/strong> implements <strong><em>UserNotificationHandler<\/em><\/strong> interface so by extending this <em>abstract class <\/em>you will not be forced to implement all methods of <strong><em>UserNotificationHandler<\/em><\/strong><\/li>\n<li><strong><em>UserNotificationHandler<\/em><\/strong>&#8216;s job is to interpret notification events and determine to whom to deliver it. For ex. To which user and site etc.<\/li>\n<\/ul>\n<p><\/p>\n<ol start=\"2.1\">\n<l1><br \/>\n2.1. Now implement @Component block in SendNotificationToUserHandler and use \u201cUserNotificationHandler\u201d service which is registered as an OSGI Service as follow,<br \/>\n<br \/>\n<img loading=\"lazy\" class=\"size-full wp-image-1823 alignnone\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/05\/customnotification1.png\" alt=\"Implement Custom User Notification Handler Class\" width=\"560\" height=\"76\" \/>\n<\/li>\n<\/ol>\n<ol start=\"2.2\">\n<l1><br \/>\n 2.2. Implement getBody() and getBodyTemplete() methods as follow in SendNotificationToUserHandler class,<\/p>\n<p>\n<img loading=\"lazy\" class=\"size-full wp-image-1824 alignnone\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/05\/customnotification2.png\" alt=\" Implement getBody() and getBodyTemplete() methods\" width=\"593\" height=\"392\" \/>\n<\/li>\n<\/ol>\n<ol start=\"3\">\n<li><strong>Add notifications information in database table:<\/strong><\/li>\n<\/ol>\n<p>\nYou have successfully implemented custom notification class. Now its time to make notification entry in DB. Generally, this entry would be done from custom portlet based on business requirement to notify user about different events. Just to demonstrate how it works, I am adding one dummy entry in usernotificationevent table.<br \/>\n<\/p>\n<ul>\n<li>You need to add Notification in usernotificationevent table using \u201cUserNotificationLocalServie\u201d service. In DXP, you need to use XXXLocalService class instead of XXXLocalServiceUtil for DB operation. You may read more about it from following link, <a href=\"https:\/\/dev.liferay.com\/develop\/tutorials\/-\/knowledge_base\/7-0\/finding-and-invoking-liferay-services\">https:\/\/dev.liferay.com\/develop\/tutorials\/-\/knowledge_base\/7-0\/finding-and-invoking-liferay-services<\/a><\/li>\n<li>Refer following code block to understand how to make database entry for notification. You can also manually insert record in table for demo purpose,<\/li>\n<\/ul>\n<p><img loading=\"lazy\" class=\"size-full wp-image-1826 alignnone\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/05\/customnotification3.png\" alt=\"Add notifications information in database table\" width=\"1058\" height=\"204\" \/><br \/>\n<br \/>\nWith above steps, you have successfully implemented custom notification and made database table entry to display notification. It\u2019s time to deploy code to see how it looks like. In my case, this custom notification is being rendered as following snapshot,<\/p>\n<ul>\n<li>You will get notification intimation as follow,<br \/>\n<br \/>\n<img loading=\"lazy\" class=\"size-full wp-image-1827 alignnone\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/05\/customnotification4.png\" alt=\"get notification intimation\" width=\"248\" height=\"139\" \/>\n<\/li>\n<\/ul>\n<ul>\n<li>You can see complete notification message as follow on click of user icon,<br \/>\n<br \/>\n<img loading=\"lazy\" class=\"size-full wp-image-1828 alignnone\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/05\/customnotification5.png\" alt=\"notification message\" width=\"100%\" height=\"379\" \/>\n<\/li>\n<\/ul>\n<p>I hope this post gives idea about difference between Liferay6.2 and DXP to implement custom notification. EnProwess believed in learning and sharing. You can read different implementation approaches for DXP on our site. Keep learning!<\/p>\n<p>Post by,<br \/>\n<br \/>\nZeenesh Patel<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Welcome to EnProwess blogs. In this post, I am going to talk about notification feature and how to create custom notification in DXP. Before we talk about notification feature in DXP, lets understand what has changed in DXP with compare to Liferay 6.2. In Liferay 6.2, There is Notification display portlet. This portlet can be&hellip; <a class=\"more-link\" href=\"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/\">Continue reading <span class=\"screen-reader-text\">Learn Liferay DXP custom notification in 5 minute<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1838,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,46],"tags":[6,15,41,53,18,19,10,54,16],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Learn Liferay DXP custom notification in 5 minute - EnProwess Blog<\/title>\n<meta name=\"description\" content=\"Learn about implementing custom notification in Liferay 7\/DXP\" \/>\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\/liferay-dxp-custom-notification\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Learn custom notification in Liferay DXP in 5 minutes\" \/>\n<meta property=\"og:description\" content=\"Learn about implementing custom notification in Liferay 7\/DXP\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/\" \/>\n<meta property=\"og:site_name\" content=\"EnProwess Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-23T07:39:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-27T10:28:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/05\/howto-customnotification.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:title\" content=\"Learn custom notification in Liferay DXP in 5 minutes\" \/>\n<meta name=\"twitter:description\" content=\"Learn about implementing custom notification in Liferay 7\/DXP\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/05\/howto-customnotification.jpg\" \/>\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\/liferay-dxp-custom-notification\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#webpage\",\"url\":\"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/\",\"name\":\"Learn Liferay DXP custom notification in 5 minute - EnProwess Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#primaryimage\"},\"datePublished\":\"2017-05-23T07:39:48+00:00\",\"dateModified\":\"2022-04-27T10:28:16+00:00\",\"description\":\"Learn about implementing custom notification in Liferay 7\/DXP\",\"breadcrumb\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#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\":\"Learn Liferay DXP custom notification in 5 minute\"}]},{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#\/schema\/person\/cb84840e7dba202419065ea1c9fe7f11\"},\"headline\":\"Learn Liferay DXP custom notification in 5 minute\",\"datePublished\":\"2017-05-23T07:39:48+00:00\",\"dateModified\":\"2022-04-27T10:28:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#webpage\"},\"wordCount\":526,\"commentCount\":19,\"publisher\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/05\/howto-customnotification.jpg\",\"keywords\":[\"Best Practice\",\"BestPractice\",\"DXP\",\"DXP customization\",\"Liferay 7\",\"Liferay DXP\",\"liferay7\",\"Notification\",\"OSGI\"],\"articleSection\":[\"Liferay\",\"Liferay DXP\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#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":"Learn Liferay DXP custom notification in 5 minute - EnProwess Blog","description":"Learn about implementing custom notification in Liferay 7\/DXP","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\/liferay-dxp-custom-notification\/","og_locale":"en_US","og_type":"article","og_title":"Learn custom notification in Liferay DXP in 5 minutes","og_description":"Learn about implementing custom notification in Liferay 7\/DXP","og_url":"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/","og_site_name":"EnProwess Blog","article_published_time":"2017-05-23T07:39:48+00:00","article_modified_time":"2022-04-27T10:28:16+00:00","og_image":[{"url":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/05\/howto-customnotification.jpg"}],"twitter_card":"summary","twitter_title":"Learn custom notification in Liferay DXP in 5 minutes","twitter_description":"Learn about implementing custom notification in Liferay 7\/DXP","twitter_image":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/05\/howto-customnotification.jpg","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\/liferay-dxp-custom-notification\/#primaryimage","inLanguage":"en-US","url":"","contentUrl":""},{"@type":"WebPage","@id":"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#webpage","url":"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/","name":"Learn Liferay DXP custom notification in 5 minute - EnProwess Blog","isPartOf":{"@id":"https:\/\/www.enprowess.com\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#primaryimage"},"datePublished":"2017-05-23T07:39:48+00:00","dateModified":"2022-04-27T10:28:16+00:00","description":"Learn about implementing custom notification in Liferay 7\/DXP","breadcrumb":{"@id":"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#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":"Learn Liferay DXP custom notification in 5 minute"}]},{"@type":"TechArticle","@id":"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#article","isPartOf":{"@id":"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#webpage"},"author":{"@id":"https:\/\/www.enprowess.com\/blogs\/#\/schema\/person\/cb84840e7dba202419065ea1c9fe7f11"},"headline":"Learn Liferay DXP custom notification in 5 minute","datePublished":"2017-05-23T07:39:48+00:00","dateModified":"2022-04-27T10:28:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#webpage"},"wordCount":526,"commentCount":19,"publisher":{"@id":"https:\/\/www.enprowess.com\/blogs\/#organization"},"image":{"@id":"https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#primaryimage"},"thumbnailUrl":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2017\/05\/howto-customnotification.jpg","keywords":["Best Practice","BestPractice","DXP","DXP customization","Liferay 7","Liferay DXP","liferay7","Notification","OSGI"],"articleSection":["Liferay","Liferay DXP"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.enprowess.com\/blogs\/liferay-dxp-custom-notification\/#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\/1822"}],"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=1822"}],"version-history":[{"count":9,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/posts\/1822\/revisions"}],"predecessor-version":[{"id":3212,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/posts\/1822\/revisions\/3212"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/media\/1838"}],"wp:attachment":[{"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/media?parent=1822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/categories?post=1822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/tags?post=1822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}