{"id":1451,"date":"2012-04-10T20:28:12","date_gmt":"2012-04-10T14:43:12","guid":{"rendered":"https:\/\/www.sparksupport.com\/blog\/?p=1451"},"modified":"2024-06-24T11:05:45","modified_gmt":"2024-06-24T11:05:45","slug":"perl-dancer-framework","status":"publish","type":"post","link":"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/","title":{"rendered":"Perl Dancer"},"content":{"rendered":"<p>Perl Dancer,Ever since I learned perl, i was dreaming to write a web app of my own. I was scared by the terms sessions, cookies, content rendering, SQL integration etc. But Dancer eased my way.<\/p>\n<p>Thanks to Perl Dancer, i just deployed a Music Web App &#8211; &#8220;<a href=\"https:\/\/www.sparksupport.com\/\">Spark<\/a> Impulse&#8221; in our office.<a href=\"https:\/\/www.sparksupport.com\/hire-perl-developers-india.html\">HIRE PERL DEVELOPERS INDIA<\/a><\/p>\n<p><strong>What is Dancer ?<\/strong><\/p>\n<p>Dancer is a simple but powerful web application framework in Perl. Dancer stole the approach from Sinatra, a web framework for Ruby. Yes, The bad artists imitate, The great artists steal !!<\/p>\n<p><strong>Why Dancer ?<\/strong><\/p>\n<ul>\n<li>LightWeight<\/li>\n<li>StandAlone<\/li>\n<li>PSGI\/Plack Compliant<\/li>\n<li>Expressive Syntax<\/li>\n<li>Few Dependencies<\/li>\n<li>Few Configuration Steps<\/li>\n<\/ul>\n<p><strong>Installation<\/strong><\/p>\n<p>Using cpanminus<\/p>\n<p><code>spark$ curl -L http:\/\/cpanmin.us | perl - --sudo Dancer<\/code><\/p>\n<p>Using cpan shell<\/p>\n<p><code>spark$ perl -MCPAN -e shell<\/code><\/p>\n<p><code>cpan shell -- CPAN exploration and modules installation (v1.9402)<br \/>\nEnter 'h' for help.<\/code><\/p>\n<p><code><code>cpan[1]&gt; <\/code><\/code><strong>install Dancer<\/strong><code><br \/>\n<\/code><\/p>\n<p>Or even by hand<\/p>\n<p><code>spark$ wget http:\/\/search.cpan.org\/CPAN\/authors\/id\/X\/XS\/XSAWYERX\/Dancer-1.3095.tar.gz<br \/>\nspark$ tar -zxf Dancer-1.3095.tar.gz<br \/>\nspark$ cd Dancer-1.3095<br \/>\nspark$ perl Makefile.PL<br \/>\nspark$ make<br \/>\nspark$ make test<br \/>\nspark$ make install<br \/>\n<\/code><\/p>\n<p>A Dancer script itself is a webserver. Yes, you read it correctly &#8211; run the script from command prompt and your web application will spring into existance.<\/p>\n<p><code>spark$ .\/myapp.pl<br \/>\n&gt;&gt; Dancer 1.3092 server 9194 listening on http:\/\/0.0.0.0:3000<br \/>\n&gt;&gt; Dancer::Plugin::Database (1.81)<br \/>\n&gt;&gt; Dancer::Plugin::Database::Handle (0.12)<br \/>\n== Entering the development dance floor ...<\/code><\/p>\n<p>With the following code in your myapp.pl script you say a big hello to the world at http:\/\/:3000\/<\/p>\n<p><code>#!\/usr\/bin\/env perl<br \/>\nuse Dancer;<br \/>\nget '\/' =&gt; sub {<br \/>\n\"Hello World !\"<br \/>\n};<br \/>\ndance;<\/code><\/p>\n<p>Dancer app is defined with route handlers. A route handler is basically a &#8216;sub&#8217; ( function ) associated to an HTTP method and a path pattern. Valid HTTP methods are GET, POST, PUT, DELETE. But usually it will either be a GET or a POST !<\/p>\n<p>Path Patterns includes Named Matching, WildCards Matching, Regex Matching, Conditional Matching as shown below. A route pattern can also contain one or more tokens (a word prefixed with &#8216;:&#8217;).<\/p>\n<p><code>get '\/hello\/:name' =&gt; sub {<br \/>\n\"Hi\" . param('name') . \", Welcome here!\";<br \/>\n}<\/code><\/p>\n<p>When you access http:\/\/localhost:3000\/hello\/Peter, server should respond with a page &#8211; Hi Peter, Welcome here!<\/p>\n<p>To make the token optional suffix it with a &#8220;?&#8221;<\/p>\n<p><code>get '\/hello\/:name?' =&gt; sub {<br \/>\n\"Hello there \" . (param('name') || \"whoever you are!\");<br \/>\n};<\/code><\/p>\n<p>You may use regex patterns for defining routes. And Dancer will return the matches in an arrayref, accessible via the keyword &#8216;splat&#8217;.<\/p>\n<p><code>get '\/download\/*.*' =&gt; sub {<br \/>\nmy ($file, $ext) = splat;<br \/>\n# do something with $file.$ext here<br \/>\n};<\/code><\/p>\n<p><code>get qr{\/hello\/([\\w]+)} =&gt; sub {<br \/>\nmy ($name) = splat;<br \/>\nreturn \"Hello $name\";<br \/>\n}<br \/>\n<\/code><br \/>\nSo processing a HTTP request is equal to finding a matching route handler. When a request matches with a route handler, dancer executes that route handler.<\/p>\n<p>Enough to start with !<\/p>\n<p>I&#8217;m planning to add more blogs under the same topic. Till then, make some simple moves and start dancing !!<\/p>\n<p>Reference: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Dancer_(software)\">wikipedia<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Perl Dancer,Ever since I learned perl, i was dreaming to write a web app of my own. I was scared by the terms sessions, cookies,<\/p>\n","protected":false},"author":8,"featured_media":5068,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[87,196],"tags":[195],"class_list":["post-1451","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-perl","category-web-development","tag-perl-developmnet-company"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Perl Dancer - powerful web application framework in perl<\/title>\n<meta name=\"description\" content=\"Perl Dancer is a simple but powerful web application framework in Perl. Dancer stole the approach from Sinatra, a web framework for Ruby.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Perl Dancer - powerful web application framework in perl\" \/>\n<meta property=\"og:description\" content=\"Perl Dancer is a simple but powerful web application framework in Perl. Dancer stole the approach from Sinatra, a web framework for Ruby.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/\" \/>\n<meta property=\"article:published_time\" content=\"2012-04-10T14:43:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-24T11:05:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2012\/04\/q.png\" \/>\n\t<meta property=\"og:image:width\" content=\"311\" \/>\n\t<meta property=\"og:image:height\" content=\"162\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sai Kottuvally\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sai Kottuvally\" \/>\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\":\"Article\",\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/perl-dancer-framework\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/perl-dancer-framework\\\/\"},\"author\":{\"name\":\"Sai Kottuvally\",\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/#\\\/schema\\\/person\\\/2680e1db2b8fb1423219f4d8ed75cdc5\"},\"headline\":\"Perl Dancer\",\"datePublished\":\"2012-04-10T14:43:12+00:00\",\"dateModified\":\"2024-06-24T11:05:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/perl-dancer-framework\\\/\"},\"wordCount\":337,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/perl-dancer-framework\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/wp-content\\\/uploads\\\/2012\\\/04\\\/q.png\",\"keywords\":[\"perl developmnet company\"],\"articleSection\":[\"perl\",\"Web Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/sparksupport.com\\\/blog\\\/perl-dancer-framework\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/perl-dancer-framework\\\/\",\"url\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/perl-dancer-framework\\\/\",\"name\":\"Perl Dancer - powerful web application framework in perl\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/perl-dancer-framework\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/perl-dancer-framework\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/wp-content\\\/uploads\\\/2012\\\/04\\\/q.png\",\"datePublished\":\"2012-04-10T14:43:12+00:00\",\"dateModified\":\"2024-06-24T11:05:45+00:00\",\"description\":\"Perl Dancer is a simple but powerful web application framework in Perl. Dancer stole the approach from Sinatra, a web framework for Ruby.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/perl-dancer-framework\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sparksupport.com\\\/blog\\\/perl-dancer-framework\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/perl-dancer-framework\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/wp-content\\\/uploads\\\/2012\\\/04\\\/q.png\",\"contentUrl\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/wp-content\\\/uploads\\\/2012\\\/04\\\/q.png\",\"width\":311,\"height\":162},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/perl-dancer-framework\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Perl Dancer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/\",\"name\":\"SparkSupport Blog\",\"description\":\"SparkSupport Blogs\",\"publisher\":{\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/#organization\",\"name\":\"SparkSupport\",\"url\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/cropped-logo-1.jpg\",\"contentUrl\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/cropped-logo-1.jpg\",\"width\":216,\"height\":44,\"caption\":\"SparkSupport\"},\"image\":{\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/#\\\/schema\\\/person\\\/2680e1db2b8fb1423219f4d8ed75cdc5\",\"name\":\"Sai Kottuvally\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f5820191717ad5b3b62c3d2b96e7ae30ee17130792e99a01f96fec0694245260?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f5820191717ad5b3b62c3d2b96e7ae30ee17130792e99a01f96fec0694245260?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f5820191717ad5b3b62c3d2b96e7ae30ee17130792e99a01f96fec0694245260?s=96&d=mm&r=g\",\"caption\":\"Sai Kottuvally\"},\"description\":\"Sai Kottuvally is the Chief Technology Officer at SparkSupport, bringing over a decade of hands-on experience in software development and strategic tech leadership. As a seasoned developer turned CTO, Sai has been at the core of SparkSupport\u2019s innovation journey for the past 10 years \u2014 leading diverse technology teams, architecting scalable solutions, and driving the company\u2019s growth in the offshore IT services space. Passionate about clean code, DevOps practices, and emerging technologies, he bridges technical expertise with business vision to deliver impactful results for global clients.\",\"url\":\"https:\\\/\\\/sparksupport.com\\\/blog\\\/author\\\/sai\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Perl Dancer - powerful web application framework in perl","description":"Perl Dancer is a simple but powerful web application framework in Perl. Dancer stole the approach from Sinatra, a web framework for Ruby.","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:\/\/sparksupport.com\/blog\/perl-dancer-framework\/","og_locale":"en_US","og_type":"article","og_title":"Perl Dancer - powerful web application framework in perl","og_description":"Perl Dancer is a simple but powerful web application framework in Perl. Dancer stole the approach from Sinatra, a web framework for Ruby.","og_url":"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/","article_published_time":"2012-04-10T14:43:12+00:00","article_modified_time":"2024-06-24T11:05:45+00:00","og_image":[{"width":311,"height":162,"url":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2012\/04\/q.png","type":"image\/png"}],"author":"Sai Kottuvally","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Sai Kottuvally","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/#article","isPartOf":{"@id":"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/"},"author":{"name":"Sai Kottuvally","@id":"https:\/\/sparksupport.com\/blog\/#\/schema\/person\/2680e1db2b8fb1423219f4d8ed75cdc5"},"headline":"Perl Dancer","datePublished":"2012-04-10T14:43:12+00:00","dateModified":"2024-06-24T11:05:45+00:00","mainEntityOfPage":{"@id":"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/"},"wordCount":337,"commentCount":0,"publisher":{"@id":"https:\/\/sparksupport.com\/blog\/#organization"},"image":{"@id":"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/#primaryimage"},"thumbnailUrl":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2012\/04\/q.png","keywords":["perl developmnet company"],"articleSection":["perl","Web Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/","url":"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/","name":"Perl Dancer - powerful web application framework in perl","isPartOf":{"@id":"https:\/\/sparksupport.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/#primaryimage"},"image":{"@id":"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/#primaryimage"},"thumbnailUrl":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2012\/04\/q.png","datePublished":"2012-04-10T14:43:12+00:00","dateModified":"2024-06-24T11:05:45+00:00","description":"Perl Dancer is a simple but powerful web application framework in Perl. Dancer stole the approach from Sinatra, a web framework for Ruby.","breadcrumb":{"@id":"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/#primaryimage","url":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2012\/04\/q.png","contentUrl":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2012\/04\/q.png","width":311,"height":162},{"@type":"BreadcrumbList","@id":"https:\/\/sparksupport.com\/blog\/perl-dancer-framework\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sparksupport.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Perl Dancer"}]},{"@type":"WebSite","@id":"https:\/\/sparksupport.com\/blog\/#website","url":"https:\/\/sparksupport.com\/blog\/","name":"SparkSupport Blog","description":"SparkSupport Blogs","publisher":{"@id":"https:\/\/sparksupport.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sparksupport.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sparksupport.com\/blog\/#organization","name":"SparkSupport","url":"https:\/\/sparksupport.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sparksupport.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2019\/08\/cropped-logo-1.jpg","contentUrl":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2019\/08\/cropped-logo-1.jpg","width":216,"height":44,"caption":"SparkSupport"},"image":{"@id":"https:\/\/sparksupport.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/sparksupport.com\/blog\/#\/schema\/person\/2680e1db2b8fb1423219f4d8ed75cdc5","name":"Sai Kottuvally","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f5820191717ad5b3b62c3d2b96e7ae30ee17130792e99a01f96fec0694245260?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f5820191717ad5b3b62c3d2b96e7ae30ee17130792e99a01f96fec0694245260?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f5820191717ad5b3b62c3d2b96e7ae30ee17130792e99a01f96fec0694245260?s=96&d=mm&r=g","caption":"Sai Kottuvally"},"description":"Sai Kottuvally is the Chief Technology Officer at SparkSupport, bringing over a decade of hands-on experience in software development and strategic tech leadership. As a seasoned developer turned CTO, Sai has been at the core of SparkSupport\u2019s innovation journey for the past 10 years \u2014 leading diverse technology teams, architecting scalable solutions, and driving the company\u2019s growth in the offshore IT services space. Passionate about clean code, DevOps practices, and emerging technologies, he bridges technical expertise with business vision to deliver impactful results for global clients.","url":"https:\/\/sparksupport.com\/blog\/author\/sai\/"}]}},"_links":{"self":[{"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/posts\/1451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/comments?post=1451"}],"version-history":[{"count":0,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/posts\/1451\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/media\/5068"}],"wp:attachment":[{"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/media?parent=1451"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/categories?post=1451"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/tags?post=1451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}