{"id":271,"date":"2010-03-31T10:03:24","date_gmt":"2010-03-31T18:03:24","guid":{"rendered":"http:\/\/www.andreanolanusse.com\/en\/?p=271"},"modified":"2011-02-02T03:11:00","modified_gmt":"2011-02-02T11:11:00","slug":"datasnap-2010-authentication-throught-tcpip-transport","status":"publish","type":"post","link":"http:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/","title":{"rendered":"DataSnap 2010 authentication throught TCP\/IP Transport"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-272\" style=\"border: 0pt none; margin: 4px;\" title=\"DataSnap security\" src=\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300.jpg\" alt=\"\" width=\"300\" height=\"300\" srcset=\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300.jpg 300w, http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300-48x48.jpg 48w, http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300-36x36.jpg 36w, http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300-180x180.jpg 180w, http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300-120x120.jpg 120w, http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300-144x144.jpg 144w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>One of the common questions that I get asked about DataSnap is related to authentication in a DataSnap Server using TCP\/IP as the transport (TDSTCPServerTransporter component). If you are considering the HTTP transporter it is not a problem, the authentication component is there and provides an event for this.<\/p>\n<p>It makes sense to ask about that, since without authentication anyone will be able to connect to your DataSnap Server and execute all Server Methods available. This post will demonstrate how to implement the authentication very easily.<\/p>\n<p>I&#8217;m assuming you already know the basic stuff in DataSnap, if you already don&#8217;t know I recommend you to read some articles or watch some videos published in <strong><a href=\"http:\/\/edn.embarcadero.com\" target=\"_blank\">EDN<\/a><\/strong>.<\/p>\n<p>Let starts talking about the client side, which needs to send the credentials (username and password) to be validated through the server side. The TSQLConnection is the way to connect client in to server, beside hostname, port, driver and other parameters, also it will contain the user credentials which will be part of the Params property.<\/p>\n<p>In general we use the parameters UserName and Password, which is correct, but in this case I recommend you to use the parameters DSAuthenticationUser and DSAuthenticationPassword. DataSnap consider these parameters when you use HTTP as transporter, and if you would like to execute the server methods from DataExplorer you will be able to connect and your server will be able to verify the credentials, also these are the standard parameters.<\/p>\n<p>Our code on the client side will be like this:<\/p>\n<pre class=\"brush: delphi\">With SQLConnection1 do begin\r\n  Params.Values['HostName'] := Server;\r\n  Params.Values['Port'] := Port;\r\n  Params.Values['DSAuthenticationUser'] := 'user';\r\n  Params.Values['DSAuthenticationPassword'] := 'password';\r\nend;<\/pre>\n<p>On the server side we will use the component and event DSServer.OnConnect for the authentication process.<\/p>\n<p>The event OnConnect has the parameter DSConnectEventObject which is using the property ConnectProperties provides all connection information, it means all parameters passed from the client side will be available including the parameters I mentioned before.<\/p>\n<p>In the follow example the login and password get the respective values from the properties DSAuthenticationUser and DSAuthenticationPassword, after that occur the validation through the class TUser, which is a class I created to use in this sample.<\/p>\n<p>In case of invalid credentials the server raises a Exception, any exception raised on the event OnConnect stop the connection, in other words, the client application will not be connected on the server.<\/p>\n<pre class=\"brush: delphi\">With DSConnectEventObject.ConnectProperties do begin\r\n login := Properties.Values['DSAuthenticationUser'];\r\n password := Properties.Values['DSAuthenticationPassword'];\r\nend;\r\n\r\nuserConn := TUser.Create;\r\ntry\r\n\r\n  if not userConn.IsValidUser(login, password) then\r\n    raise Exception.Create('Invalid Login\/Password');\r\n\r\nfinally\r\n  userConn.Free;\r\nend;<\/pre>\n<p>My DataSnap samples was updated to reflect this authentication process and is already available, <a href=\"http:\/\/cc.embarcadero.com\/download.aspx?id=27391\" target=\"_self\"><strong>download here<\/strong><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the common questions that I get asked about DataSnap is related to authentication in a DataSnap Server using TCP\/IP as the transport (TDSTCPServerTransporter component). If you are considering the HTTP transporter it is not a problem, the authentication component is there and provides an event for this. It makes sense to ask about [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_s2mail":"","footnotes":""},"categories":[10],"tags":[21,90],"class_list":["post-271","post","type-post","status-publish","format-standard","hentry","category-delphi","tag-datasnap","tag-delphi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>DataSnap 2010 authentication throught TCP\/IP Transport | Andreano Lanusse | Technology and Software Development<\/title>\n<meta name=\"description\" content=\"One of the common questions that I get asked about DataSnap is related to authentication in a DataSnap Server using TCP\/IP as the transport\" \/>\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.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DataSnap 2010 authentication throught TCP\/IP Transport | Andreano Lanusse | Technology and Software Development\" \/>\n<meta property=\"og:description\" content=\"One of the common questions that I get asked about DataSnap is related to authentication in a DataSnap Server using TCP\/IP as the transport\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/\" \/>\n<meta property=\"og:site_name\" content=\"Andreano Lanusse | Technology and Software Development\" \/>\n<meta property=\"article:published_time\" content=\"2010-03-31T18:03:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2011-02-02T11:11:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300.jpg\" \/>\n<meta name=\"author\" content=\"Andreano Lanusse\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andreano Lanusse\" \/>\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:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/\"},\"author\":{\"name\":\"Andreano Lanusse\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b\"},\"headline\":\"DataSnap 2010 authentication throught TCP\/IP Transport\",\"datePublished\":\"2010-03-31T18:03:24+00:00\",\"dateModified\":\"2011-02-02T11:11:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/\"},\"wordCount\":399,\"commentCount\":8,\"publisher\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b\"},\"image\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300.jpg\",\"keywords\":[\"DataSnap\",\"Delphi\"],\"articleSection\":[\"Delphi\"],\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/\",\"url\":\"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/\",\"name\":\"DataSnap 2010 authentication throught TCP\/IP Transport | Andreano Lanusse | Technology and Software Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300.jpg\",\"datePublished\":\"2010-03-31T18:03:24+00:00\",\"dateModified\":\"2011-02-02T11:11:00+00:00\",\"description\":\"One of the common questions that I get asked about DataSnap is related to authentication in a DataSnap Server using TCP\/IP as the transport\",\"breadcrumb\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#primaryimage\",\"url\":\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300.jpg\",\"contentUrl\":\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300.jpg\",\"width\":300,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.andreanolanusse.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DataSnap 2010 authentication throught TCP\/IP Transport\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#website\",\"url\":\"https:\/\/www.andreanolanusse.com\/en\/\",\"name\":\"Andreano Lanusse | Technology and Software Development\",\"description\":\"Where Andreano Lanusse talk about technology, software development, programming techniques, databases, games and more through articles, tutorials and videos\",\"publisher\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.andreanolanusse.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b\",\"name\":\"Andreano Lanusse\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/49ab23ef70c249c0cb3469f14ef07edc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/49ab23ef70c249c0cb3469f14ef07edc?s=96&d=mm&r=g\",\"caption\":\"Andreano Lanusse\"},\"logo\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/image\/\"},\"description\":\"Andreano Lanusse is an expert and enthusiastic on software development industry, at Embarcadero he is focused on helping to make sure the products being developed meet the expectations of Embarcadero's customers, as well as defining market strategies for Latin America. Today as Latin Lead Evangelist he spends great deal of time in developer conferences, tradeshows, user group, and visiting customers throughout Latin America. Before Embarcadero, he worked 13 years for Borland, Andreano has worked as Support Coordinator, Engineer, Product Manager, including Product Line Sales Manager, where was responsible to manage the relationship with Brazil developer community, also has worked as Principal Consultant for Borland Consulting Services on the development and management of critical applications. He previously served as Chief Architect for USS Solu\u00e7\u00f5es Gerenciadas (now USS Tempo). Andreano holds a bachelor's degree in Business Administration Marketing Emphasis from Sumare Institute, MBA in Project Management from FGV, certification in Microsoft products, all Borland ALM products, and all CodeGear product line.\",\"sameAs\":[\"http:\/\/www.andreanolanusse.com\",\"https:\/\/x.com\/andreanolanusse\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DataSnap 2010 authentication throught TCP\/IP Transport | Andreano Lanusse | Technology and Software Development","description":"One of the common questions that I get asked about DataSnap is related to authentication in a DataSnap Server using TCP\/IP as the transport","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.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/","og_locale":"en_US","og_type":"article","og_title":"DataSnap 2010 authentication throught TCP\/IP Transport | Andreano Lanusse | Technology and Software Development","og_description":"One of the common questions that I get asked about DataSnap is related to authentication in a DataSnap Server using TCP\/IP as the transport","og_url":"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/","og_site_name":"Andreano Lanusse | Technology and Software Development","article_published_time":"2010-03-31T18:03:24+00:00","article_modified_time":"2011-02-02T11:11:00+00:00","og_image":[{"url":"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300.jpg","type":"","width":"","height":""}],"author":"Andreano Lanusse","twitter_misc":{"Written by":"Andreano Lanusse","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#article","isPartOf":{"@id":"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/"},"author":{"name":"Andreano Lanusse","@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b"},"headline":"DataSnap 2010 authentication throught TCP\/IP Transport","datePublished":"2010-03-31T18:03:24+00:00","dateModified":"2011-02-02T11:11:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/"},"wordCount":399,"commentCount":8,"publisher":{"@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b"},"image":{"@id":"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#primaryimage"},"thumbnailUrl":"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300.jpg","keywords":["DataSnap","Delphi"],"articleSection":["Delphi"],"inLanguage":"en","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/","url":"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/","name":"DataSnap 2010 authentication throught TCP\/IP Transport | Andreano Lanusse | Technology and Software Development","isPartOf":{"@id":"https:\/\/www.andreanolanusse.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#primaryimage"},"image":{"@id":"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#primaryimage"},"thumbnailUrl":"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300.jpg","datePublished":"2010-03-31T18:03:24+00:00","dateModified":"2011-02-02T11:11:00+00:00","description":"One of the common questions that I get asked about DataSnap is related to authentication in a DataSnap Server using TCP\/IP as the transport","breadcrumb":{"@id":"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/"]}]},{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#primaryimage","url":"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300.jpg","contentUrl":"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/server-security-300x300.jpg","width":300,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.andreanolanusse.com\/en\/datasnap-2010-authentication-throught-tcpip-transport\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.andreanolanusse.com\/en\/"},{"@type":"ListItem","position":2,"name":"DataSnap 2010 authentication throught TCP\/IP Transport"}]},{"@type":"WebSite","@id":"https:\/\/www.andreanolanusse.com\/en\/#website","url":"https:\/\/www.andreanolanusse.com\/en\/","name":"Andreano Lanusse | Technology and Software Development","description":"Where Andreano Lanusse talk about technology, software development, programming techniques, databases, games and more through articles, tutorials and videos","publisher":{"@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.andreanolanusse.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":["Person","Organization"],"@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b","name":"Andreano Lanusse","image":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/49ab23ef70c249c0cb3469f14ef07edc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/49ab23ef70c249c0cb3469f14ef07edc?s=96&d=mm&r=g","caption":"Andreano Lanusse"},"logo":{"@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/image\/"},"description":"Andreano Lanusse is an expert and enthusiastic on software development industry, at Embarcadero he is focused on helping to make sure the products being developed meet the expectations of Embarcadero's customers, as well as defining market strategies for Latin America. Today as Latin Lead Evangelist he spends great deal of time in developer conferences, tradeshows, user group, and visiting customers throughout Latin America. Before Embarcadero, he worked 13 years for Borland, Andreano has worked as Support Coordinator, Engineer, Product Manager, including Product Line Sales Manager, where was responsible to manage the relationship with Brazil developer community, also has worked as Principal Consultant for Borland Consulting Services on the development and management of critical applications. He previously served as Chief Architect for USS Solu\u00e7\u00f5es Gerenciadas (now USS Tempo). Andreano holds a bachelor's degree in Business Administration Marketing Emphasis from Sumare Institute, MBA in Project Management from FGV, certification in Microsoft products, all Borland ALM products, and all CodeGear product line.","sameAs":["http:\/\/www.andreanolanusse.com","https:\/\/x.com\/andreanolanusse"]}]}},"_links":{"self":[{"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/posts\/271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/comments?post=271"}],"version-history":[{"count":0,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/posts\/271\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/media?parent=271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/categories?post=271"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/tags?post=271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}