{"id":344332,"date":"2022-07-18T05:15:21","date_gmt":"2022-07-18T05:15:21","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=344332"},"modified":"2022-07-18T05:15:30","modified_gmt":"2022-07-18T05:15:30","slug":"how-to-handle-validations-in-modern-admin-form-handler-from-module","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/","title":{"rendered":"How to handle validations in modern admin form handler from module"},"content":{"rendered":"\n<p>In this blog, we are going to learn how we can handle validations in modern admin form handler from module based on Symfony.<\/p>\n\n\n\n<p>We handle validations to protect our application from state inconsistency, failures, security-related issues, etc.<\/p>\n\n\n\n<p>In modern pages, Controllers have or should have only one responsibility: handle the request and return a response. This is why in modern pages, controllers should be as thin as possible and rely on specific classes (services) to manage the data.<\/p>\n\n\n\n<p>But, Sometimes we use some modern hooks like <strong><code>actionAfterUpdateCustomerFormHandler<\/code><\/strong>, and <strong><code>actionAfterCreateCustomerFormHandler<\/code><\/strong> in our module and we need to handle validations and show those error messages before the request reaches the modern controller.<\/p>\n\n\n\n<p>In the above case, we use ModuleErrorException which is located in the directory <code>src\/Core\/Module\/Exception\/ModuleErrorException.php<\/code><\/p>\n\n\n\n<p>Below is the example to use this.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">public function hookActionAfterUpdateCustomerFormHandler(array $params)\n{\n    $message = $this-&gt;getTranslator()-&gt;trans(\n        &#039;Some valdation error message&#039;,\n        &#091;],\n        &#039;Admin.Notifications.Error&#039;\n    );\n    throw new \\PrestaShop\\PrestaShop\\Core\\Module\\Exception\\ModuleErrorException($message);\n}<\/pre>\n\n\n\n<p>The output will be as below<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"543\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog-1200x543.png\" alt=\"handle validations\" class=\"wp-image-344337\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog-1200x543.png 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog-300x136.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog-250x113.png 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog-768x348.png 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog.png 1255w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>We can also use <code>ModuleErrorException<\/code> in other hooks like <code>actionOrderStatusUpdate<\/code> if we want to add validation before updating order status.<\/p>\n\n\n\n<p>Below is the example to use this<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">public function hookActionOrderStatusUpdate($params)\n{\n   $message = $this-&gt;getTranslator()-&gt;trans(\n       &#039;Some validation error message&#039;,\n        &#091;],\n        &#039;Admin.Notifications.Error&#039;\n    );\n}<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"543\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog2-1200x543.png\" alt=\"blog2\" class=\"wp-image-344351\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog2-1200x543.png 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog2-300x136.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog2-250x113.png 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog2-768x348.png 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog2.png 1292w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>That\u2019s all about this blog. Hope it will help you.<\/p>\n\n\n\n<p>If you are facing any issues or have any doubts about the above process, please feel free to contact us through the comment section.<\/p>\n\n\n\n<p>Also, you can explore our&nbsp;<a href=\"https:\/\/webkul.com\/prestashop-development\/\">PrestaShop Development Services<\/a>&nbsp;and a large range of quality&nbsp;<a href=\"https:\/\/store.webkul.com\/PrestaShop-Extensions.html\">PrestaShop Modules<\/a>.<\/p>\n\n\n\n<p>For any doubt contact us at&nbsp;support@webkul.com<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this blog, we are going to learn how we can handle validations in modern admin form handler from module based on Symfony. We handle validations to protect our application from state inconsistency, failures, security-related issues, etc. In modern pages, Controllers have or should have only one responsibility: handle the request and return a response. <a href=\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":431,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-344332","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to handle validations in modern admin form handler<\/title>\n<meta name=\"description\" content=\"Sometimes we need to handle validations and show those error messages before the request reaches the modern controller on modern pages.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to handle validations in modern admin form handler\" \/>\n<meta property=\"og:description\" content=\"Sometimes we need to handle validations and show those error messages before the request reaches the modern controller on modern pages.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-18T05:15:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-18T05:15:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog-1200x543.png\" \/>\n<meta name=\"author\" content=\"Raghvendra Pratap\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Raghvendra Pratap\" \/>\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:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/\"},\"author\":{\"name\":\"Raghvendra Pratap\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/d819867cc25c4d70d2d114e78196e7d5\"},\"headline\":\"How to handle validations in modern admin form handler from module\",\"datePublished\":\"2022-07-18T05:15:21+00:00\",\"dateModified\":\"2022-07-18T05:15:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/\"},\"wordCount\":234,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog-1200x543.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/\",\"url\":\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/\",\"name\":\"How to handle validations in modern admin form handler\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog-1200x543.png\",\"datePublished\":\"2022-07-18T05:15:21+00:00\",\"dateModified\":\"2022-07-18T05:15:30+00:00\",\"description\":\"Sometimes we need to handle validations and show those error messages before the request reaches the modern controller on modern pages.\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#primaryimage\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog.png\",\"width\":1255,\"height\":568,\"caption\":\"Validation\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to handle validations in modern admin form handler from module\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/d819867cc25c4d70d2d114e78196e7d5\",\"name\":\"Raghvendra Pratap\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2aa578a93576e581ac028fb555d206ee963ff164044b165aaff0d6c3e5cfd49a?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2aa578a93576e581ac028fb555d206ee963ff164044b165aaff0d6c3e5cfd49a?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"Raghvendra Pratap\"},\"url\":\"https:\/\/webkul.com\/blog\/author\/raghvendrapratap-singh822\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to handle validations in modern admin form handler","description":"Sometimes we need to handle validations and show those error messages before the request reaches the modern controller on modern pages.","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:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/","og_locale":"en_US","og_type":"article","og_title":"How to handle validations in modern admin form handler","og_description":"Sometimes we need to handle validations and show those error messages before the request reaches the modern controller on modern pages.","og_url":"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2022-07-18T05:15:21+00:00","article_modified_time":"2022-07-18T05:15:30+00:00","og_image":[{"url":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog-1200x543.png","type":"","width":"","height":""}],"author":"Raghvendra Pratap","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Raghvendra Pratap","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/"},"author":{"name":"Raghvendra Pratap","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/d819867cc25c4d70d2d114e78196e7d5"},"headline":"How to handle validations in modern admin form handler from module","datePublished":"2022-07-18T05:15:21+00:00","dateModified":"2022-07-18T05:15:30+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/"},"wordCount":234,"commentCount":0,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog-1200x543.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/","url":"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/","name":"How to handle validations in modern admin form handler","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog-1200x543.png","datePublished":"2022-07-18T05:15:21+00:00","dateModified":"2022-07-18T05:15:30+00:00","description":"Sometimes we need to handle validations and show those error messages before the request reaches the modern controller on modern pages.","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#primaryimage","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2022\/07\/blog.png","width":1255,"height":568,"caption":"Validation"},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/how-to-handle-validations-in-modern-admin-form-handler-from-module\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to handle validations in modern admin form handler from module"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/d819867cc25c4d70d2d114e78196e7d5","name":"Raghvendra Pratap","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2aa578a93576e581ac028fb555d206ee963ff164044b165aaff0d6c3e5cfd49a?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2aa578a93576e581ac028fb555d206ee963ff164044b165aaff0d6c3e5cfd49a?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"Raghvendra Pratap"},"url":"https:\/\/webkul.com\/blog\/author\/raghvendrapratap-singh822\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/344332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/431"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=344332"}],"version-history":[{"count":10,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/344332\/revisions"}],"predecessor-version":[{"id":344352,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/344332\/revisions\/344352"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=344332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=344332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=344332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}