{"id":1336,"date":"2014-07-22T11:00:31","date_gmt":"2014-07-22T10:00:31","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=1336"},"modified":"2014-07-22T09:38:48","modified_gmt":"2014-07-22T08:38:48","slug":"configurar-jslink-programaticamente","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/configurar-jslink-programaticamente\/","title":{"rendered":"Configurar JSLINK program\u00e1ticamente"},"content":{"rendered":"<p>Una de las grandes novedades que ha tra\u00eddo la versi\u00f3n 2013 de SharePoint, es la introducci\u00f3n de JavaScript como un elemento de casi obligado conocimiento para los desarrolladores de SharePoint, de la misma forma que C# o PowerShell. Esta introducci\u00f3n se puede observar en diversos artefactos \u00about-of-the-box\u00bb, como son el Content by Search o el JSLink. Estos dos artefactos lo que hacen es mejorar el renderizado en el lado del cliente. Y para poder realizar estas operaciones, hacen uso de JavaScript. En este post, vamos a ver qu\u00e9 es JSLink y c\u00f3mo lo podemos configurar bien desde el modelo de objetos servidor o con PowerShell.<\/p>\n<p><!--more--><\/p>\n<p><strong>\u00bfQu\u00e9 es JSLink?<\/strong><\/p>\n<p>Es una propiedad que tienen las listas en las que se indican que fichero JavaScript se va a cargar una vez se muestra el formulario en el navegador. \u00a0De esta manera, JSLink facilita la forma en la que se puede extender el comportamiento de los formularios en SharePoint. En anteriores versiones, lo que hac\u00edamos\u00a0es, mediante SharePoint Designer, personalizar estos formularios. Una tarea ardua y pesada para el que lo tuviera que hacer.<\/p>\n<p>JSLink viene a substituir al anterior lenguaje, el que se utilizaba en las versiones anteriores de SharePoint, a XSLT. \u00a0JSLink tiene multitud de aspectos o caracter\u00edsticas que lo sit\u00faan por delante de XSLT. Algunos de estos son: aspectos de rendimiento, mayor posibilidad de personalizaci\u00f3n de los datos, mayor n\u00famero de personas que conocen JavaScript respecto a XSLT, etc. Por estas razones (y algunas otras), debemos plantearnos dejar a un lado XSLT y apostar por JSLink.<\/p>\n<p>Ahora bien, tenemos que saber cu\u00e1l es el contexto en el que vamos a utilizar JSLink ya que \u00e9ste no sustituye el uso de\u00a0librer\u00edas JavaScript de Templates como\u00a0Mustache, RactiveJS, o nuestra librer\u00eda preferida. JSLink nos facilita la personalizaci\u00f3n de formularios, pero para dotar a \u00e9stos de mayor funcionalidad, la mejor opci\u00f3n es hacer un desarrollo personalizado de los mismos.<\/p>\n<p>Si quer\u00e9is saber m\u00e1s sobre c\u00f3mo utilizar JSLink, os recomendamos\u00a0<a href=\"http:\/\/www.compartimoss.com\/revistas\/numero-19\/renderizado-desde-el-lado-de-cliente-en-sharepoint-2013\" target=\"_blank\">leer este art\u00edculo<\/a> de <a href=\"https:\/\/twitter.com\/adiazcan\" target=\"_blank\">Alberto D\u00edaz<\/a> en <a href=\"http:\/\/www.compartimoss.com\" target=\"_blank\">CompartiMOSS<\/a>\u00a0o bien este otro\u00a0<a href=\"http:\/\/zimmergren.net\/technical\/sp-2013-using-the-spfield-jslink-property-to-change-the-way-your-field-is-rendered-in-sharepoint-2013\" target=\"_blank\">art\u00edculo de Tobias\u00a0Zimmergren<\/a> (MVP de SharePoint).<\/p>\n<p><strong>Configurar JSLINK mediante programaci\u00f3n<\/strong><br \/>\nToda esta nueva funcionalidad est\u00e1 muy bien, pero lo cierto es que donde realmente ha dado un paso adelante JSLink es en la forma en la que podemos configurarlo desde nuestros despliegues e incluirlo dentro del ciclo de vida de nuestra aplicaci\u00f3n de una forma muy sencilla.<\/p>\n<p><strong>Mediante c\u00f3digo servidor<\/strong><br \/>\nEn la poca documentaci\u00f3n que existe sobre JSLink se indica que debemos de realizarlo de esta forma:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nSPWeb web = SPContext.Current.Web;\r\nSPList list = web.Lists.TryGetList(&quot;MyTasks&quot;);\r\nif (null != list)\r\n{\r\n  SPForm newForm = list.Forms&#x5B;PAGETYPE.PAGE_NEWFORM];\r\n  if (null != newForm)\r\n  {\r\n    newForm.JSLink = &quot;~\/mycustom.js&quot;;\r\n  }\r\n}\r\n<\/pre>\n<p>Con ese c\u00f3digo que se nos da, a pesar de que no se produce ning\u00fan error, NO funciona y cuando vamos\u00a0consultar el formulario no tiene configurada esta propiedad. Para solventar este inconveniente, hemos implementado esta soluci\u00f3n:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n var list = web.Lists.TryGetList(listName);                \r\n\r\nif (list != null)\r\n {\r\n  var editForm = web.GetFile(list.DefaultEditFormUrl);\r\n  var wpmEdit =\r\n                        editForm.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);\r\n     if (wpmEdit.WebParts.Count == 1)\r\n     {\r\n       var wp = wpmEdit.WebParts&#x5B;0] as ListFormWebPart;\r\n      wp.JSLink =\r\n                            &quot;~sitecollectionlayouts\/vitrall\/js\/jquery.min.js|~sitecollectionlayouts\/jslink\/documenteditform.js&quot;;\r\n                        wpmEdit.SaveChanges(wp);\r\n                    }\r\n\r\n<\/pre>\n<p>Como pod\u00e9is\u00a0observar, lo que hemos realizado para asignar el JSLink es acceder a la p\u00e1gina d\u00f3nde est\u00e1 el formulario, ver\u00a0si tiene un WebPart y, en caso afirmativo, asignarle\u00a0la ruta de nuestros ficheros JavaScript a la propiedad JSLink.<br \/>\n<strong>Nota:<\/strong> A la hora de modificar este valor, debemos de tener claro que la p\u00e1gina del formulario no est\u00e9 siendo utilizada. De lo contrario, se producir\u00eda un error.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Mediante PowerShell<\/strong><\/p>\n<pre class=\"brush: powershell; title: ; notranslate\" title=\"\">\r\n$web = Get-SPWeb http:\/\/demo\r\n $webPartPage = &quot;\/Lists\/Sample%20Tasks\/AllItems.aspx&quot;\r\n$file = $web.GetFile($webPartPage)\r\n$file.CheckOut()\r\n $webPartManager = $web.GetLimitedWebPartManager($webPartPage, &#x5B;System.Web.UI.WebControls.WebParts.Pers\r\nonalizationScope]::Shared)\r\n $webpart = $webPartManager.WebParts&#x5B;0]\r\n $webpart.JSLink = &quot;~sitecollectionlayouts\/jslink\/documenteditform.js&quot;\r\n $webPartManager.SaveChanges($webpart)\r\n $file.CheckIn(&quot;Actualizado JSLINK&quot;)\r\n<\/pre>\n<p><strong>Otras opciones<\/strong><br \/>\nExisten dos formas m\u00e1s para poder configurar JSLINK. La primera de ellas es modificando los XML de configuraci\u00f3n de las listas de la forma que realiza Chris Obrien en este <a href=\"http:\/\/www.sharepointnutsandbolts.com\/2013\/01\/using-jslink-to-change-ui-of-sharepoint_20.html\" target=\"_blank\">enlace<\/a>. La segunda es haciendo uso del Modelo de Objetos cliente en JavaScript (este modo es muy similar a los anteriores ejemplos, pero os puede resultar bastante curioso).<\/p>\n<h2>Resumen<\/h2>\n<p>Como hemos comentado en anteriores entradas, SharePoint va evolucionando y se convierte, cada vez m\u00e1s, en un producto que sigue los est\u00e1ndares Web. Por lo tanto, NO podemos quedarnos s\u00f3lo\u00a0con\u00a0aspectos v\u00e1lidos de anteriores versiones, no porque no lo podamos utilizarlos, sino por la necesidad de adaptarnos a la que puede ser\u00a0la siguiente versi\u00f3n de SharePoint (o SharePoint Online). Seguir utilizando elementos ant\u00edguos\/deprecated nos puede solucionar problemas de hoy, pero la verdad es que los aplaza para un futuro m\u00e1s o menos cercano. Por ello, te recomendamos que aprendas c\u00f3mo funciona JavaScript y, antes de lo que piensas, obtendr\u00e1s buenos resultados.<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><span class=\"et_bloom_bottom_trigger\"><\/span>","protected":false},"excerpt":{"rendered":"<p>Una de las grandes novedades que ha tra\u00eddo la versi\u00f3n 2013 de SharePoint, es la introducci\u00f3n de JavaScript como un elemento de casi obligado conocimiento para los desarrolladores de SharePoint, de la misma forma que C# o PowerShell. Esta introducci\u00f3n &hellip; <a href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/configurar-jslink-programaticamente\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[100,113],"tags":[117],"class_list":["post-1336","post","type-post","status-publish","format-standard","hentry","category-javascript-2","category-office-365-2","tag-jslink"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Configurar JSLINK program\u00e1ticamente - Desarrollando sobre SharePoint<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/configurar-jslink-programaticamente\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Configurar JSLINK program\u00e1ticamente - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"Una de las grandes novedades que ha tra\u00eddo la versi\u00f3n 2013 de SharePoint, es la introducci\u00f3n de JavaScript como un elemento de casi obligado conocimiento para los desarrolladores de SharePoint, de la misma forma que C# o PowerShell. Esta introducci\u00f3n &hellip; Continue reading &rarr;\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adri\u00e1n D\u00edaz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/configurar-jslink-programaticamente\\\/#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/configurar-jslink-programaticamente\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"Configurar JSLINK program\u00e1ticamente\",\"datePublished\":\"2014-07-22T10:00:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/configurar-jslink-programaticamente\\\/\"},\"wordCount\":884,\"commentCount\":0,\"keywords\":[\"jslink\"],\"articleSection\":[\"javascript\",\"Office 365\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/configurar-jslink-programaticamente\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/configurar-jslink-programaticamente\\\/\",\"url\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/configurar-jslink-programaticamente\\\/\",\"name\":\"Configurar JSLINK program\u00e1ticamente - Desarrollando sobre SharePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\"},\"datePublished\":\"2014-07-22T10:00:31+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/configurar-jslink-programaticamente\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/\",\"name\":\"Desarrollando sobre SharePoint\",\"description\":\"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\",\"name\":\"Adri\u00e1n D\u00edaz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"caption\":\"Adri\u00e1n D\u00edaz\"},\"description\":\"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/author\\\/desarrollandosobresharepoint\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Configurar JSLINK program\u00e1ticamente - Desarrollando sobre SharePoint","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":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/configurar-jslink-programaticamente\/","twitter_card":"summary_large_image","twitter_title":"Configurar JSLINK program\u00e1ticamente - Desarrollando sobre SharePoint","twitter_description":"Una de las grandes novedades que ha tra\u00eddo la versi\u00f3n 2013 de SharePoint, es la introducci\u00f3n de JavaScript como un elemento de casi obligado conocimiento para los desarrolladores de SharePoint, de la misma forma que C# o PowerShell. Esta introducci\u00f3n &hellip; Continue reading &rarr;","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/configurar-jslink-programaticamente\/#article","isPartOf":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/configurar-jslink-programaticamente\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"Configurar JSLINK program\u00e1ticamente","datePublished":"2014-07-22T10:00:31+00:00","mainEntityOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/configurar-jslink-programaticamente\/"},"wordCount":884,"commentCount":0,"keywords":["jslink"],"articleSection":["javascript","Office 365"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/configurar-jslink-programaticamente\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/configurar-jslink-programaticamente\/","url":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/configurar-jslink-programaticamente\/","name":"Configurar JSLINK program\u00e1ticamente - Desarrollando sobre SharePoint","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website"},"datePublished":"2014-07-22T10:00:31+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/configurar-jslink-programaticamente\/"]}]},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/","name":"Desarrollando sobre SharePoint","description":"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb","name":"Adri\u00e1n D\u00edaz","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","caption":"Adri\u00e1n D\u00edaz"},"description":"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/author\/desarrollandosobresharepoint\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/1336","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/comments?post=1336"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/1336\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=1336"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=1336"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=1336"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}