{"id":14598,"date":"2023-07-05T16:40:03","date_gmt":"2023-07-05T14:40:03","guid":{"rendered":"https:\/\/www.espai.es\/blog\/?p=14598"},"modified":"2023-07-05T17:11:37","modified_gmt":"2023-07-05T15:11:37","slug":"trucos-react-package-json","status":"publish","type":"post","link":"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/","title":{"rendered":"Un par de trucos para React usando el archivo package.json"},"content":{"rendered":"<p>Si estas empezando a programar <a href=\"https:\/\/react.dev\/\" target=\"_blank\" rel=\"noopener\">React<\/a> y usas la herramienta <strong>create-react-app<\/strong>, es posible que te hayas encontrado con algunos problemas que aunque puedan parecer complicados se resuelven f\u00e1cilmente modificando un poquito el archivo <strong>package.json<\/strong>.<\/p>\n<h2>Indicar la ruta de la aplicaci\u00f3n React en el servidor<\/h2>\n<p>Cuando terminamos nuestro proyecto, llega el maravilloso momento de compilar la aplicaci\u00f3n Web y subirla al servidor, y es entonces cuando tal vez nos encontremos con el problema de que <strong>las rutas que hemos usado durante el desarrollo no son compatibles con las rutas que va a utilizar el programa en el servidor<\/strong>.<\/p>\n<p>Por ejemplo, cuando desarrollamos la aplicaci\u00f3n Web, por defecto solemos indicar las<strong> rutas absolutas respecto a la ra\u00edz del servidor Web<\/strong>. De este modo, para indicar por ejemplo, la ruta de la p\u00e1gina de contacto normalmente haremos algo tal que as\u00ed:<\/p>\n<pre>&lt;Link className=\"submenu-item\" to=\"\/contacto\"&gt;Contacto&lt;\/Link&gt;<\/pre>\n<p>Sin embargo, puede que finalmente en el servidor, por alg\u00fan motivo, <strong>debamos de alojar la aplicaci\u00f3n Web en una subcarpeta y no podamos instalar directamente la aplicaci\u00f3n en la ra\u00edz del servidor<\/strong>. Esto no seria gran problema y bastar\u00eda con usar un subdominio, pero hay ocasiones en las que tampoco es posible.<\/p>\n<p>En estos casos podemos ayudarnos del archivo <strong>package.json<\/strong> para indicar cual ser\u00e1 la ruta de nuestra aplicaci\u00f3n. Para ello, simplemente hemos de<strong> a\u00f1adir el dicho archivo, la clave \u00abhomepage\u00bb y como valor la ruta completa que usaremos en el servidor<\/strong>. De este modo:<\/p>\n<pre>\"homepage\" : \"https:\/\/www.servidor.com\/carpeta-aplicacion\"<\/pre>\n<p>Finalmente, en nuestra aplicaci\u00f3n, cuando vayamos a indicar una ruta, deberemos de hacerlo de este modo para <strong>asegurarnos de que la ruta final sea la correcta y deseada<\/strong>:<\/p>\n<pre>&lt;Link className=\"submenu-item\" to={process.env.PUBLIC_URL + '\/contacto'}&gt;Contacto&lt;\/Link&gt;<\/pre>\n<p>Lo bueno de esta soluci\u00f3n, es que si hay que cambiar la ruta o algo, tan solo tenemos que <strong>modificar la entrada que hemos a\u00f1adido al archivo package.json<\/strong> y ya est\u00e1.<\/p>\n<h2>Evitar problemas de CORS en React con package.json<\/h2>\n<p>Otro problema habitual al usar la herramienta <strong>create-react-app<\/strong> sucede <strong>cuando intentamos integrar nuestra aplicaci\u00f3n Web con un backend<\/strong>. Aunque por lo general trabajamos en local, y tanto nuestra aplicaci\u00f3n React como nuestro backend se encuentren en localhost, a efectos pr\u00e1cticos para el navegador Web son servidores diferentes por culpa del puerto.<\/p>\n<p>Cuando trabajamos en nuestra aplicaci\u00f3n React creada con <strong>create-react-app<\/strong> la ruta por defecto es la siguiente:<\/p>\n<pre>http:\/\/localhost:3000\/<\/pre>\n<p>Es decir, <strong>el puerto 3000 de nuestro ordenador<\/strong>.<\/p>\n<p>Sin embargo, puede que nuestro backend lo tengamos usando otro puerto, como por ejemplo el 80, y la direcci\u00f3n de nuestro backend sea algo as\u00ed:<\/p>\n<pre>http:\/\/localhost\/backend<\/pre>\n<p>NOTA: Como el puerto por defecto para HTTP es el 80, no es necesario indicarlo.<\/p>\n<p><strong>Y aunque en ambos casos el servidor es el mismo (localhost) para el navegador a efectos pr\u00e1cticos son servidores diferentes por culpa de la diferencia de puertos<\/strong>. Y es entonces cuando aparecen los <strong>problemas de CORS<\/strong>.<\/p>\n<p><strong>CORS<\/strong> es un mecanismo para <strong>poder indicar si un servidor puede acceder a los recursos de otro servidor<\/strong>. Y aunque podemos modificar nuestro backend para que acepte las conexiones del \u00abservidor\u00bb localhost:3000 o de cualquier otro servidor, no es algo f\u00e1cil de hacer, y adem\u00e1s tiene sus limitaciones ya que el mecanismo que hay detr\u00e1s de <strong>CORS complica y limita (por seguridad) la forma en la que se realizan estas conexiones entre servidores<\/strong>.<\/p>\n<p>As\u00ed que antes de pelearte con este complejo sistema CORS, lo mejor seria simplemente <strong>evitarlo por completo<\/strong>. Siempre y cuando, estemos seguros que nuestra aplicaci\u00f3n React y su backend estar\u00e1n finalmente en el mismo servidor, claro.<\/p>\n<p>De nuevo, <strong>la soluci\u00f3n a este problema es tan sencilla como a\u00f1adir un registro m\u00e1s al archivo package.json<\/strong>. Concretamente hay que <strong>a\u00f1adir la clave \u00abproxy\u00bb y el valor ha de ser la direcci\u00f3n URL de nuestro backend<\/strong>. As\u00ed de f\u00e1cil:<\/p>\n<div>\n<pre>\"proxy\": \"http:\/\/localhost\/mi-backend\/\"<\/pre>\n<\/div>\n<p>De esta forma, <strong>cualquier petici\u00f3n a una direcci\u00f3n que no exista en nuestro \u00abservidor React\u00bb (es decir, localhost:3000) ser\u00e1 redirigida a ese otro servidor sin problemas de CORS ni nada<\/strong>.<\/p>\n<p>O dicho de otro modo, si desde nuestra aplicaci\u00f3n React intentamos acceder a este recurso del servidor backend:<\/p>\n<pre>http:\/\/localhost:3000\/backend\/datos.php<\/pre>\n<p>como dicha direcci\u00f3n no existe en nuestra aplicaci\u00f3n React, la petici\u00f3n ser\u00e1 redirigida a:<\/p>\n<pre>http:\/\/localhost\/backend\/datos.php<\/pre>\n<p>que es donde tenemos nuestro verdadero servidor backend de desarrollo.<\/p>\n<p>Obviamente, una vez compilada la aplicaci\u00f3n React y subida al servidor real junto al backend, no habr\u00e1 ning\u00fan tipo de problema. <strong>Pero con esta soluci\u00f3n evitaremos problemas de CORS durante el desarrollo.<\/strong><\/p>\n<h2><\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Si estas empezando a programar React y usas la herramienta create-react-app, es posible que te hayas encontrado con algunos problemas que aunque puedan parecer complicados se resuelven f\u00e1cilmente modificando un poquito el archivo package.json. Indicar la ruta de la aplicaci\u00f3n React en el servidor Cuando&#8230;<\/p>\n","protected":false},"author":23,"featured_media":14645,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_ef_editorial_meta_date_first-draft-date":"","_ef_editorial_meta_paragraph_assignment":"","_ef_editorial_meta_checkbox_needs-photo":"","_ef_editorial_meta_number_word-count":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[7,5],"tags":[469],"class_list":["post-14598","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-diseno-web","category-programacion","tag-reactjs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Un par de trucos para React usando el archivo package.json -<\/title>\n<meta name=\"description\" content=\"El archivo package.json nos puede ahorrar algunos dolores de cabeza si estamos creando una aplicaci\u00f3n React con create-react-app.\" \/>\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.espai.es\/blog\/2023\/07\/trucos-react-package-json\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Un par de trucos para React usando el archivo package.json -\" \/>\n<meta property=\"og:description\" content=\"El archivo package.json nos puede ahorrar algunos dolores de cabeza si estamos creando una aplicaci\u00f3n React con create-react-app.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Escola Espai\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-05T14:40:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-05T15:11:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2023\/06\/logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Abel Camarena\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Abel Camarena\" \/>\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\":\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/\"},\"author\":{\"name\":\"Abel Camarena\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897\"},\"headline\":\"Un par de trucos para React usando el archivo package.json\",\"datePublished\":\"2023-07-05T14:40:03+00:00\",\"dateModified\":\"2023-07-05T15:11:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/\"},\"wordCount\":759,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2023\/06\/logo.jpg\",\"keywords\":[\"reactjs\"],\"articleSection\":[\"Dise\u00f1o Web\",\"Programaci\u00f3n\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/\",\"url\":\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/\",\"name\":\"Un par de trucos para React usando el archivo package.json -\",\"isPartOf\":{\"@id\":\"https:\/\/www.espai.es\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2023\/06\/logo.jpg\",\"datePublished\":\"2023-07-05T14:40:03+00:00\",\"dateModified\":\"2023-07-05T15:11:37+00:00\",\"author\":{\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897\"},\"description\":\"El archivo package.json nos puede ahorrar algunos dolores de cabeza si estamos creando una aplicaci\u00f3n React con create-react-app.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#primaryimage\",\"url\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2023\/06\/logo.jpg\",\"contentUrl\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2023\/06\/logo.jpg\",\"width\":1000,\"height\":500,\"caption\":\"React\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.espai.es\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Un par de trucos para React usando el archivo package.json\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.espai.es\/blog\/#website\",\"url\":\"https:\/\/www.espai.es\/blog\/\",\"name\":\"Blog Escola Espai\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.espai.es\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897\",\"name\":\"Abel Camarena\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/035501b0f14e120b1a49121758e2056b8d589fc43b9d3c3ad3670a197a90dddf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/035501b0f14e120b1a49121758e2056b8d589fc43b9d3c3ad3670a197a90dddf?s=96&d=mm&r=g\",\"caption\":\"Abel Camarena\"},\"sameAs\":[\"http:\/\/www.espai.es\"],\"url\":\"https:\/\/www.espai.es\/blog\/author\/abel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Un par de trucos para React usando el archivo package.json -","description":"El archivo package.json nos puede ahorrar algunos dolores de cabeza si estamos creando una aplicaci\u00f3n React con create-react-app.","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.espai.es\/blog\/2023\/07\/trucos-react-package-json\/","og_locale":"es_ES","og_type":"article","og_title":"Un par de trucos para React usando el archivo package.json -","og_description":"El archivo package.json nos puede ahorrar algunos dolores de cabeza si estamos creando una aplicaci\u00f3n React con create-react-app.","og_url":"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/","og_site_name":"Blog Escola Espai","article_published_time":"2023-07-05T14:40:03+00:00","article_modified_time":"2023-07-05T15:11:37+00:00","og_image":[{"width":1000,"height":500,"url":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2023\/06\/logo.jpg","type":"image\/jpeg"}],"author":"Abel Camarena","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Abel Camarena","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#article","isPartOf":{"@id":"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/"},"author":{"name":"Abel Camarena","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897"},"headline":"Un par de trucos para React usando el archivo package.json","datePublished":"2023-07-05T14:40:03+00:00","dateModified":"2023-07-05T15:11:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/"},"wordCount":759,"commentCount":0,"image":{"@id":"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#primaryimage"},"thumbnailUrl":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2023\/06\/logo.jpg","keywords":["reactjs"],"articleSection":["Dise\u00f1o Web","Programaci\u00f3n"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/","url":"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/","name":"Un par de trucos para React usando el archivo package.json -","isPartOf":{"@id":"https:\/\/www.espai.es\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#primaryimage"},"image":{"@id":"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#primaryimage"},"thumbnailUrl":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2023\/06\/logo.jpg","datePublished":"2023-07-05T14:40:03+00:00","dateModified":"2023-07-05T15:11:37+00:00","author":{"@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897"},"description":"El archivo package.json nos puede ahorrar algunos dolores de cabeza si estamos creando una aplicaci\u00f3n React con create-react-app.","breadcrumb":{"@id":"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#primaryimage","url":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2023\/06\/logo.jpg","contentUrl":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2023\/06\/logo.jpg","width":1000,"height":500,"caption":"React"},{"@type":"BreadcrumbList","@id":"https:\/\/www.espai.es\/blog\/2023\/07\/trucos-react-package-json\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.espai.es\/blog\/"},{"@type":"ListItem","position":2,"name":"Un par de trucos para React usando el archivo package.json"}]},{"@type":"WebSite","@id":"https:\/\/www.espai.es\/blog\/#website","url":"https:\/\/www.espai.es\/blog\/","name":"Blog Escola Espai","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.espai.es\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897","name":"Abel Camarena","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/035501b0f14e120b1a49121758e2056b8d589fc43b9d3c3ad3670a197a90dddf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/035501b0f14e120b1a49121758e2056b8d589fc43b9d3c3ad3670a197a90dddf?s=96&d=mm&r=g","caption":"Abel Camarena"},"sameAs":["http:\/\/www.espai.es"],"url":"https:\/\/www.espai.es\/blog\/author\/abel\/"}]}},"jetpack_featured_media_url":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2023\/06\/logo.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/14598","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/comments?post=14598"}],"version-history":[{"count":8,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/14598\/revisions"}],"predecessor-version":[{"id":14676,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/14598\/revisions\/14676"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/media\/14645"}],"wp:attachment":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/media?parent=14598"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/categories?post=14598"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/tags?post=14598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}