{"id":72396,"date":"2023-12-08T13:11:54","date_gmt":"2023-12-08T12:11:54","guid":{"rendered":"https:\/\/kinsta.com\/es\/?p=72396&#038;preview=true&#038;preview_id=72396"},"modified":"2023-12-18T16:54:41","modified_gmt":"2023-12-18T15:54:41","slug":"jira-api","status":"publish","type":"post","link":"https:\/\/kinsta.com\/es\/blog\/jira-api\/","title":{"rendered":"Crea una Lista de Tareas Alojada en Kinsta Utilizando la API de Jira y React"},"content":{"rendered":"<p>Jira es una popular herramienta de gesti\u00f3n de proyectos que te ayuda a realizar un seguimiento de las tareas de un proyecto. Sin embargo, cuando trabajas en un proyecto grande, tu panel de Jira puede saturarse a medida que aumenta el n\u00famero de tareas y miembros del equipo.<\/p>\n<p>Para solucionar este problema, puedes utilizar la <a href=\"https:\/\/developer.atlassian.com\/server\/jira\/platform\/rest-apis\/\">API REST de Jira<\/a> para generar una aplicaci\u00f3n simplificada de Lista de Tareas que muestre tus tareas asignadas y sus plazos. La API te permite interactuar mediante programaci\u00f3n con Jira para crear, recuperar, actualizar y eliminar incidencias, y acceder a los datos de usuario y a los detalles del proyecto.<\/p>\n<p>Este tutorial te gu\u00eda a trav\u00e9s del desarrollo de una aplicaci\u00f3n de lista de tareas con <a href=\"https:\/\/docs.sevalla.com\/templates\/overview\">Node.js<\/a> como servidor para obtener las incidencias de tu cuenta de Jira y una aplicaci\u00f3n React para mostrarlas. Tambi\u00e9n aprender\u00e1s a alojar tanto el frontend como el servidor en Kinsta.<br \/>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc><\/p>\n<h2>Requisitos Previos<\/h2>\n<p>Para seguir adelante, necesitas<\/p>\n<ul>\n<li><a href=\"https:\/\/nodejs.org\/en\/download\/current\" target=\"_blank\" rel=\"noopener noreferrer\">Node.js<\/a> y <a href=\"https:\/\/docs.npmjs.com\/downloading-and-installing-node-js-and-npm\" target=\"_blank\" rel=\"noopener noreferrer\">Node Package Manager<\/a> (npm) instalados en tu m\u00e1quina de desarrollo.<\/li>\n<li>Una <a href=\"https:\/\/www.atlassian.com\/software\/jira\" target=\"_blank\" rel=\"noopener noreferrer\">cuenta Jira<\/a> para acceder a las tareas.<\/li>\n<li>Un conocimiento s\u00f3lido de <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-node-js\/\">Node.<\/a> js y <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-react-js\/\">React<\/a>.<\/li>\n<\/ul>\n<h2>C\u00f3mo Construir el Backend con Node.js y Express<\/h2>\n<p><a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-express\/\">Express<\/a> es un popular framework de Node.js que proporciona un entorno simplificado para construir aplicaciones del lado del servidor. Express simplifica el manejo de rutas y facilita las interacciones con recursos externos, como API, bases de datos y aplicaciones frontend.<\/p>\n<p>Sigue los pasos que se indican a continuaci\u00f3n para configurar el servidor:<\/p>\n<ol start=\"1\">\n<li>Crea un nuevo directorio y navega hasta \u00e9l. A continuaci\u00f3n, inicializa Node.js ejecutando el siguiente comando:\n<pre><code class=\"language-bash\">npm init -y<\/code><\/pre>\n<p>Este comando crea un archivo <strong>package.json<\/strong> con la configuraci\u00f3n predeterminada en el ra\u00edz de la carpeta de tu aplicaci\u00f3n.<\/li>\n<li>A continuaci\u00f3n, instala todas las dependencias necesarias para tu proyecto ejecutando el siguiente comando:\n<pre><code class=\"language-bash\">npm install express dotenv axios<\/code><\/pre>\n<p>El comando anterior instala lo siguiente:<\/p>\n<ul>\n<li><code><a href=\"https:\/\/www.npmjs.com\/package\/express\" target=\"_blank\" rel=\"noopener noreferrer\">express<\/a><\/code> \u2014 Un framework minimalista de Node.js para construir APIs.<\/li>\n<li><code><a href=\"https:\/\/www.npmjs.com\/package\/dotenv\" target=\"_blank\" rel=\"noopener noreferrer\">dotenv<\/a><\/code> \u2014 Un m\u00f3dulo que carga variables <code>.env<\/code> en <code>process.env<\/code> para que puedas acceder a ellas de forma segura.<\/li>\n<li><code><a href=\"https:\/\/www.npmjs.com\/package\/axios\" target=\"_blank\" rel=\"noopener noreferrer\">axios<\/a><\/code> \u2014 Un cliente HTTP basado en promesas para Node.js. Se utiliza para hacer llamadas API a Jira.<\/li>\n<\/ul>\n<\/li>\n<li>Una vez que la instalaci\u00f3n se haya realizado correctamente, crea un archivo <strong>.env<\/strong> en el ra\u00edz de tu proyecto y a\u00f1ade el n\u00famero <code>PORT<\/code>:\n<pre><code class=\"language-bash\">PORT=3000<\/code><\/pre>\n<p>Este es el n\u00famero de puerto en el que escucha el servidor. Puedes cambiarlo por un puerto de tu elecci\u00f3n.<\/li>\n<li>Crea un archivo <strong>index.js<\/strong> en la carpeta ra\u00edz de tu proyecto y a\u00f1ade el siguiente c\u00f3digo para importar Express, crear una instancia de una aplicaci\u00f3n Express e iniciar tu servidor:\n<pre><code class=\"language-javascript\">const express = require('express');\nrequire('dotenv').config()\nconst app = express();\nconst PORT = process.env.PORT;\n\n\/\/ Define routes here\n\napp.listen(PORT, () =&gt; {\n  console.log(`Server is running on port ${PORT}`);\n});<\/code><\/pre>\n<\/li>\n<li>Por \u00faltimo, en tu archivo <strong>package.json<\/strong>, a\u00f1ade un script para iniciar tu servidor:\n<pre><code class=\"language-javascript\">\"scripts\": {\n   \"start\": \"node index\"\n  },<\/code><\/pre>\n<p>Ahora, puedes ejecutar el script de inicio en tu terminal:<\/p>\n<pre><code class=\"language-bash\">npm run start<\/code><\/pre>\n<p>Este comando inicia tu servidor. Deber\u00edas ver el siguiente texto registrado en el terminal:<\/p>\n<pre><code class=\"language-bash\">Server is running on port 3000<\/code><\/pre>\n<p>Con el servidor en marcha, ya puedes configurar tu aplicaci\u00f3n Jira.<\/li>\n<\/ol>\n<h3>C\u00f3mo Configurar una Aplicaci\u00f3n de Jira<\/h3>\n<p>Para utilizar la API REST de Jira, necesitas autenticar una cuenta de usuario con tu sitio de Jira. La API de la app de Jira que has creado utiliza la autenticaci\u00f3n b\u00e1sica con una direcci\u00f3n de correo electr\u00f3nico de una cuenta de Atlassian y un token de API.<\/p>\n<p>Aqu\u00ed tienes c\u00f3mo configurarlo:<\/p>\n<ol start=\"1\">\n<li>Crea una cuenta de <a href=\"https:\/\/www.atlassian.com\/software\/jira\" target=\"_blank\" rel=\"noopener noreferrer\">Jira<\/a> o inicia sesi\u00f3n si ya tienes una.<\/li>\n<li>Ve a la <a href=\"https:\/\/id.atlassian.com\/manage-profile\/security\/api-tokens\" target=\"_blank\" rel=\"noopener noreferrer\">secci\u00f3n de seguridad<\/a> de tu perfil de Atlassian y haz clic en <strong>Crear token de API<\/strong>.<\/li>\n<li>En el cuadro de di\u00e1logo que aparece, introduce una Etiqueta para tu token (por ejemplo, \u00abjira-todo-list\u00bb) y haz clic en <strong>Crear<\/strong>.<\/li>\n<li>Copia el token en tu portapapeles.<\/li>\n<li>Por \u00faltimo, guarda el token de API en tu archivo <strong>.env<\/strong>:\n<pre><code class=\"bash\">JIRA_API_TOKEN=\"your-api-token\"<\/code><\/pre>\n<p>Ahora puedes acceder a la API de Jira utilizando la autenticaci\u00f3n b\u00e1sica.<\/li>\n<\/ol>\n<h3>Configurar Rutas para Obtener Incidencias de Jira<\/h3>\n<p>Ahora que has configurado una aplicaci\u00f3n Jira. Vamos a configurar rutas para obtener incidencias de Jira en tu servidor Node.js.<\/p>\n<p>Para iniciar una solicitud a la API de Jira, debes utilizar el token de la API de Jira que guardaste en el archivo <strong>.env<\/strong>. Recupera el token de la API utilizando <code>process.env<\/code> y as\u00edgnalo a una variable llamada <code>JIRA_API_TOKEN<\/code> en tu archivo <strong>index.js<\/strong>:<\/p>\n<pre><code class=\"language-javascript\">const JIRA_API_TOKEN = process.env.JIRA_API_TOKEN<\/code><\/pre>\n<p>Ahora, tienes que definir la URL del endpoint para tu solicitud de API. Esta URL contiene tu dominio de Jira y una sentencia <a href=\"https:\/\/www.atlassian.com\/blog\/jira-software\/jql-the-most-flexible-way-to-search-jira-14\" target=\"_blank\" rel=\"noopener noreferrer\">Jira Query Language<\/a> (JQL). El dominio de Jira se refiere a la URL de tu organizaci\u00f3n de Jira y se parece a <code>org.atlassian.net<\/code>, donde <code>org<\/code> es el nombre de tu organizaci\u00f3n. JQL, por su parte, es un lenguaje de consulta para interactuar con incidencias en Jira.<\/p>\n<p>Empieza por a\u00f1adir el dominio de Jira al archivo <strong>.env<\/strong>:<\/p>\n<pre><code class=\"bash\">JIRA_DOMAIN=\"your-jira-domain\"<\/code><\/pre>\n<p>Tambi\u00e9n tienes que almacenar tu correo electr\u00f3nico de Jira en el archivo . <strong>env<\/strong>, ya que se utilizar\u00eda para la autorizaci\u00f3n al realizar una solicitud a Jira:<\/p>\n<pre><code class=\"language-bash\">JIRA_EMAIL=\"your-jira-email\"<\/code><\/pre>\n<p>A continuaci\u00f3n, a\u00f1ade ambas variables de entorno y construye la URL del endpoint utilizando el dominio y la siguiente sentencia JQL. Esta consulta filtra las incidencias con estado \u00abIn progress\u00bb o \u00abTo do\u00bb para el usuario conectado y luego las ordena por estado:<\/p>\n<pre><code class=\"language-javascript\">const jiraDomain = process.env.JIRA_DOMAIN;\nconst email= process.env.JIRA_EMAIL;\n\nconst jql = \"status%20in%20(%22In%20progress%22%2C%20%22To%20do%22)%20OR%20assignee%20%3D%20currentUser()%20order%20by%20status\";\n \nconst apiUrl = `https:\/\/${jiraDomain}\/rest\/api\/3\/search?jql=${jql}`;<\/code><\/pre>\n<p>Antes de crear una ruta, importa tambi\u00e9n Axios en tu archivo index.js:<\/p>\n<pre><code class=\"language-javascript\">const axios = require(\"axios\")<\/code><\/pre>\n<p>Ahora puedes crear una ruta que haga una petici\u00f3n GET a la API de Jira y devuelva las incidencias. En <strong>index.js<\/strong> a\u00f1ade el siguiente c\u00f3digo:<\/p>\n<pre><code class=\"language-javascript\">app.get('\/issues\/all', async (req, res) =&gt; {\n  })<\/code><\/pre>\n<p>Ahora, utiliza el m\u00e9todo <code>axios.get<\/code> para hacer una solicitud GET a la API REST de Jira. Crea la cabecera <code>Authorization<\/code> codificando en base64 tu correo electr\u00f3nico de Jira y el token de la API:<\/p>\n<pre><code class=\"language-javascript\">const response = await axios.get(apiUrl, {\n        headers: {\n        Authorization: `Basic ${Buffer.from(\n          `${email}:${JIRA_API_TOKEN}`\n        ).toString(\"base64\")}`,\n        Accept: \"application\/json\",\n      },\n    });<\/code><\/pre>\n<p>Espera la respuesta de la API de Jira y gu\u00e1rdala en una variable. La respuesta contiene una propiedad llamada <code>issues<\/code>, que contiene un array de objetos issue:<\/p>\n<pre><code class=\"language-javascript\">const data = await response.json();\nconst { issues } = data;<\/code><\/pre>\n<p>A continuaci\u00f3n, itera sobre el array <code>issues<\/code>, extrae s\u00f3lo la informaci\u00f3n relevante sobre los elementos pendientes y devu\u00e9lvela en la respuesta JSON:<\/p>\n<pre><code class=\"language-javascript\">let cleanedIssues = [];\nissues.forEach((issue) =&gt; {\n      const issueData = {\n        id: issue.id,\n        projectName: issue.fields.project.name,\n        status: issue.fields.status.name,\n        deadline: issue.fields.duedate,\n      };\n      cleanedIssues.push(issueData);\n});\nres.status(200).json({ issues: cleanedIssues });<\/code><\/pre>\n<p>Si haces una petici\u00f3n a <code>http:\/\/localhost:3000\/issues\/all<\/code>, deber\u00edas recibir un objeto JSON que contenga los asuntos:<\/p>\n<pre><code class=\"language-bash\">curl localhost:3000\/issues\/all<\/code><\/pre>\n<p>Incluso puedes llevar esto m\u00e1s lejos utilizando un proveedor como SendGrid y una tarea cron para enviar correos electr\u00f3nicos diarios que contengan las tareas asignadas.<\/p>\n<h3>Aloja tu Aplicaci\u00f3n Node.js en Kinsta<\/h3>\n<p>Antes de alojar tu aplicaci\u00f3n en Kinsta, habilita el <a href=\"https:\/\/kinsta.com\/es\/blog\/bibliotecas-node-js\/#2-cors\">Uso Compartido de Recursos entre Or\u00edgenes (CORS<\/a>, Cross-Origin Resource Sharing) para evitar un error <code>access-control-allow-origin<\/code>, ya que alojas el backend y el frontend en dominios diferentes. Para ello<\/p>\n<ol start=\"1\">\n<li>Instala el <a href=\"https:\/\/www.npmjs.com\/package\/cors\" target=\"_blank\" rel=\"noopener noreferrer\">paquete npm cors<\/a> ejecutando este comando en tu terminal:\n<pre><code class=\"language-bash\">npm install cors<\/code><\/pre>\n<\/li>\n<li>A continuaci\u00f3n, importa el paquete en <strong>index.js<\/strong>.\n<pre><code class=\"language-javascript\">const cors = require('cors')<\/code><\/pre>\n<\/li>\n<li>A continuaci\u00f3n, configura CORS como middleware para habilitarlo para cada solicitud entrante. A\u00f1ade el siguiente c\u00f3digo en la parte superior de tu archivo <strong>index.js<\/strong>:\n<pre><code class=\"language-javascript\">app.use(cors());<\/code><\/pre>\n<p>Ahora puedes enviar peticiones HTTP a tu servidor desde un dominio diferente sin encontrar errores CORS.<\/li>\n<\/ol>\n<p>A continuaci\u00f3n, env\u00eda tu c\u00f3digo a tu proveedor Git preferido <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/bitbucket#grant-access-to-the-kinsta-bitbucket-application\">(Bitbucket<\/a>, <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">GitHub<\/a> o <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/gitlab#authorize-the-kinsta-gitlab-application\">GitLab<\/a>) y sigue los pasos que se indican a continuaci\u00f3n para alojarlo:<\/p>\n<ol start=\"1\">\n<li>Inicia sesi\u00f3n o crea una cuenta para ver tu panel <a href=\"https:\/\/my.kinsta.com\/?lang=es\" target=\"_blank\" rel=\"noopener noreferrer\">MyKinsta<\/a>.<\/li>\n<li>Autoriza a Kinsta con tu proveedor de Git.<\/li>\n<li>Haz clic en <strong>Aplicaciones<\/strong> en la barra lateral izquierda, y luego en <strong>A\u00f1adir aplicaci\u00f3n<\/strong>.<\/li>\n<li>Selecciona el repositorio y la rama desde la que deseas desplegar.<\/li>\n<li>Asigna un nombre \u00fanico a tu aplicaci\u00f3n y elige la <strong>ubicaci\u00f3n del centro de datos<\/strong>.<\/li>\n<li>A\u00f1ade las variables de entorno. No es necesario a\u00f1adir el PUERTO como variable de entorno, ya que Kinsta lo gestiona autom\u00e1ticamente. Marca las casillas junto a <strong>Disponible durante el tiempo de ejecuci\u00f3n<\/strong> y <strong>Disponible durante el proceso de construcci\u00f3n<\/strong>:\n<p><figure style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/11\/kinsta-environment-variables.png\" alt=\"Un formulario para a\u00f1adir pares clave-valor de variables de entorno\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Variables de entorno de la aplicaci\u00f3n Kinsta.<\/figcaption><\/figure><\/li>\n<li>Revisa el resto de la informaci\u00f3n (puedes dejar los valores por defecto) y haz clic en <strong>Crear aplicaci\u00f3n<\/strong>.<\/li>\n<\/ol>\n<p>Tu servidor ya est\u00e1 desplegado correctamente en Kinsta. En el men\u00fa de la izquierda, haz clic en <strong>Dominios<\/strong> y copia el dominio primario. Este es el endpoint de la URL de tu servidor.<\/p>\n<h2>Crear una Aplicaci\u00f3n React para Mostrar las Incidencias<\/h2>\n<p>A continuaci\u00f3n, utiliza React para crear el frontend de tu aplicaci\u00f3n y CSS para darle estilo. Sigue los pasos que se indican a continuaci\u00f3n para crear un proyecto React con <a href=\"https:\/\/docs.sevalla.com\/templates\/overview#react-with-vite\">Vite<\/a>:<\/p>\n<ol start=\"1\">\n<li>Crea un nuevo proyecto React llamado <code>jira-todo<\/code>:\n<pre><code class=\"language-bash\">npx create-vite jira-todo --template react<\/code><\/pre>\n<\/li>\n<li>Navega hasta el directorio del proyecto e instala las dependencias necesarias:\n<pre><code class=\"language-bash\">npm install<\/code><\/pre>\n<\/li>\n<li>Inicia el servidor de desarrollo:\n<pre><code class=\"language-bash\">npm run dev<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>Obtener Incidencias del Servidor<\/h3>\n<ol start=\"1\">\n<li>Borra el contenido en <strong>App.jsx<\/strong> y a\u00f1ade el siguiente c\u00f3digo:<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">function App() {\n\n  return (\n    &lt;div className=\"App\"&gt;\n      &lt;h1&gt;What's on my list today?&lt;\/h1&gt;\n      {\/* Display issues *\/}\n\n   &lt;\/div&gt;\n );\n}\n\nexport default App;<\/code><\/pre>\n<ol start=\"2\">\n<li>Antes de empezar a obtener las incidencias, guarda la URL del servidor de Kinsta en un archivo <strong>.env<\/strong> en el root de la carpeta de tu app:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">VITE_SERVER_BASE_URL=\"your-hosted-url\"<\/code><\/pre>\n<ol start=\"3\">\n<li>Obt\u00e9n la URL en <strong>App.jsx<\/strong> a\u00f1adiendo la siguiente l\u00ednea en la parte superior del archivo:<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">const SERVER_BASE_URL=import.meta.env.VITE_SERVER_BASE_URL<\/code><\/pre>\n<ol start=\"4\">\n<li>En tu componente, crea una funci\u00f3n as\u00edncrona llamada <code>fetchData<\/code> y realiza una solicitud GET al endpoint <code>\/issues\/all<\/code> en el servidor Express. Una vez que recibas una respuesta, anal\u00edzala como JSON y almacena los datos en un valor de estado llamado <code>data<\/code>:<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">import { useCallback, useEffect, useState } from \"react\";\n\nfunction App() {\n  const SERVER_BASE_URL=import.meta.env.VITE_SERVER_BASE_URL\n\n  const [data, setData] = useState([]);\n  const fetchData = useCallback(async () =&gt; {\n    try {\n      const response = await fetch(`${SERVER_BASE_URL}\/issues\/all`);\n      if (!response.ok) {\n        throw new Error('Network response was not ok');\n     }\n      const data = await response.json();\n      \tsetData(data.issues);\n    } catch (error) {\n      console.error('Error fetching data:', error);\n  }\n     },[SERVER_BASE_URL]);\n\n  useEffect(() =&gt; {\n    \/\/ Fetch data when the component mounts\n    fetchData();\n     },[fetchData]);\n\n  return (\n    &lt;div className=\"App\"&gt;\n        &lt;h1&gt;What's on my list today?&lt;\/h1&gt;\n      \n    &lt;\/div&gt;\n  );\n}\n\nexport default App;<\/code><\/pre>\n<p>Ten en cuenta que utilizas el hook <code>useEffect<\/code> para ejecutar la funci\u00f3n <code>fetchData<\/code> cuando se monta el componente.<\/p>\n<h3>Renderizar las Incidencias desde Jira en el Navegador<\/h3>\n<ol start=\"1\">\n<li>Ahora, puedes modificar la sentencia return de tu componente para iterar sobre las incidencias y listarlas en el navegador:<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">return (\n  &lt;div&gt;\n    &lt;h1&gt;What's on my list today?&lt;\/h1&gt;\n    &lt;section&gt;\n      \t{data && data.map(issue =&gt; {\n      \treturn &lt;div className=\"issues\" key={issue.id}&gt;\n        &lt;div&gt;\n         &lt;div&gt;{issue.summary}&lt;\/div&gt;\n          &lt;small&gt;{issue.deadline}&lt;\/small&gt;\n        &lt;\/div&gt;\n        &lt;div&gt;\n          &lt;div&gt; className=\"status\"&gt;{issue.status}&lt;\/div&gt;\n        &lt;\/div&gt;\n      &lt;\/div&gt;\n    })}\n    &lt;\/section&gt;\n  &lt;\/div&gt;\n);<\/code><\/pre>\n<ol start=\"2\">\n<li>Para dar estilo a esta aplicaci\u00f3n, a\u00f1ade el siguiente c\u00f3digo CSS a <strong>App.css<\/strong>:<\/li>\n<\/ol>\n<pre><code class=\"language-css\">h1 {\n    text-align: center;\n  font-size: 1.6rem;\n  margin-top: 1rem;\n}\nsection {\n  display: flex;\n  flex-direction: column;\n justify-content: center;\n  align-items: center;\n  margin-top: 2rem;\n }\n\n .issues {\n  display: flex;\n  min-width: 350px;\n  justify-content: space-between;\n  padding: 1rem;\n  background-color: #eee;\n  margin-bottom: 1rem;\n}\n\n small {\n  color: gray;\n}\n\n.status-btn {\n  padding: 4px;\n  border: 1px solid #000;\n  border-radius: 5px;\n}<\/code><\/pre>\n<ol start=\"3\">\n<li>A continuaci\u00f3n, importa <strong>App.css<\/strong> en <strong>index.js<\/strong> para aplicar los estilos:<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">import '.\/App.css'<\/code><\/pre>\n<p>Ahora, cuando inicies tu aplicaci\u00f3n, deber\u00edas ver en tu navegador una lista de las tareas que tienes asignadas con su estado y fecha l\u00edmite:<\/p>\n<figure style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/11\/jira-react-application.png\" alt=\"Una captura de pantalla de la p\u00e1gina de la aplicaci\u00f3n React\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Lista de asuntos de Jira asignados a un usuario.<\/figcaption><\/figure>\n<h2>Despliega tu Aplicaci\u00f3n React en Kinsta<\/h2>\n<p>Para simplificar las cosas, utiliza el <a href=\"https:\/\/docs.sevalla.com\/templates\/overview#react-with-vite#static-site-hosting\">Alojamiento de Sitios Est\u00e1ticos de Kinsta<\/a>\u00a0para desplegar la aplicaci\u00f3n. El Alojamiento de Sitios Est\u00e1ticos de Kinsta ayuda a construir tus sitios en un sitio est\u00e1tico y despliega los archivos est\u00e1ticos asegurando una entrega r\u00e1pida del contenido y un tiempo de inactividad m\u00ednimo.<\/p>\n<p>Crea un repositorio en GitHub para <a href=\"https:\/\/kinsta.com\/es\/blog\/como-enviar-codigo-a-github\/\">enviar tu c\u00f3digo fuente<\/a>. Una vez que tu repositorio est\u00e9 listo, sigue estos pasos para desplegar tu sitio est\u00e1tico en Kinsta:<\/p>\n<ol start=\"1\">\n<li>Inicia sesi\u00f3n o crea una cuenta para ver tu panel MyKinsta.<\/li>\n<li>Autoriza a Kinsta con tu proveedor de Git.<\/li>\n<li>Haz clic en <strong>Sitios Est\u00e1ticos<\/strong> en la barra lateral izquierda, y luego en <strong>A\u00f1adir sitio<\/strong>.<\/li>\n<li>Selecciona el repositorio y la rama desde la que deseas desplegar.<\/li>\n<li>Asigna un nombre \u00fanico a tu sitio.<\/li>\n<li>MyKinsta detecta autom\u00e1ticamente los ajustes de construcci\u00f3n para este proyecto React. Ver\u00e1s los siguientes ajustes rellenados previamente:\n<ul>\n<li><strong>Comando de construcci\u00f3n:<\/strong> <code>npm run build<\/code><\/li>\n<li><strong>Versi\u00f3n de nodo:<\/strong> <code>18.16.0<\/code><\/li>\n<li><strong>Directorio de publicaci\u00f3n:<\/strong> <code>dist<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<ol start=\"7\">\n<li>A\u00f1ade la URL de tu servidor como variable de entorno utilizando <code>VITE_SERVER_BASE_URL<\/code>.<\/li>\n<li>Por \u00faltimo, haz clic en <strong>Crear sitio<\/strong>.<\/li>\n<\/ol>\n<p>Y \u00a1listo! Ya tienes un sitio desplegado en unos segundos. Se proporciona un enlace para acceder a la versi\u00f3n desplegada de tu sitio. Si navegas hasta el dominio de tu sitio, ver\u00e1s una lista de incidencias de Jira. Si lo deseas, puedes a\u00f1adir m\u00e1s adelante tu <a href=\"https:\/\/docs.sevalla.com\/applications\/domains\">dominio personalizado<\/a> y tu <a href=\"https:\/\/docs.sevalla.com\/applications\/domains#install-a-custom-ssl-certificate\">certificado SSL<\/a>.<\/p>\n<p>Como alternativa al alojamiento de sitios est\u00e1ticos, puedes optar por desplegar tu sitio est\u00e1tico con el <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Alojamiento de Aplicaciones<\/a> de Kinsta, que proporciona una mayor flexibilidad de alojamiento, una gama m\u00e1s amplia de ventajas y acceso a funciones m\u00e1s robustas. Por ejemplo, escalabilidad, despliegue personalizado mediante un Dockerfile, y <a href=\"https:\/\/docs.sevalla.com\/applications\/analytics\">an\u00e1liticas completas<\/a> que abarcan datos hist\u00f3ricos y en tiempo real.<\/p>\n<h2>Resumen<\/h2>\n<p>En esta gu\u00eda, has aprendido a crear una aplicaci\u00f3n Express para recuperar incidencias de Jira asignadas mediante la API REST de Jira. Adem\u00e1s, has conectado una aplicaci\u00f3n frontend React a tu aplicaci\u00f3n Express para mostrar estas incidencias en el navegador.<\/p>\n<p>Esta aplicaci\u00f3n es una demostraci\u00f3n rudimentaria de lo que puedes conseguir con la API REST de Jira. Puedes mejorar tu aplicaci\u00f3n con funcionalidades que te permitan marcar tareas completadas, realizar filtrados avanzados y mucho m\u00e1s.<\/p>\n<p>Adem\u00e1s, con Kinsta, puedes alojar tanto tu servidor como el sitio en un solo panel utilizando nuestros distintos servicios. <a href=\"https:\/\/kinsta.com\/es\/\">Comprueba que Kinsta<\/a> ofrece un alojamiento web robusto y flexible para todas tus aplicaciones.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jira es una popular herramienta de gesti\u00f3n de proyectos que te ayuda a realizar un seguimiento de las tareas de un proyecto. Sin embargo, cuando trabajas &#8230;<\/p>\n","protected":false},"author":199,"featured_media":72397,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1270,1296,1311,1321,1297],"class_list":["post-72396","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-api","topic-frameworks-javascript","topic-node-js","topic-react","topic-tutoriales-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Crea una Lista de Tareas Alojada en Kinsta Utilizando la API de Jira y React - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Aprende a gestionar tareas de forma eficiente con una lista de tareas alojada en Kinsta. Esta gu\u00eda aprovecha la API de Jira y React para crear una potente aplicaci\u00f3n.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/es\/blog\/jira-api\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Crea una Lista de Tareas Alojada en Kinsta Utilizando la API de Jira y React\" \/>\n<meta property=\"og:description\" content=\"Aprende a gestionar tareas de forma eficiente con una lista de tareas alojada en Kinsta. Esta gu\u00eda aprovecha la API de Jira y React para crear una potente aplicaci\u00f3n.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/es\/blog\/jira-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinsta.es\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-08T12:11:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-18T15:54:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/jira-api.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Aprende a gestionar tareas de forma eficiente con una lista de tareas alojada en Kinsta. Esta gu\u00eda aprovecha la API de Jira y React para crear una potente aplicaci\u00f3n.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/jira-api.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/jira-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/jira-api\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Crea una Lista de Tareas Alojada en Kinsta Utilizando la API de Jira y React\",\"datePublished\":\"2023-12-08T12:11:54+00:00\",\"dateModified\":\"2023-12-18T15:54:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/jira-api\/\"},\"wordCount\":2108,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/jira-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/jira-api.jpg\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/jira-api\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/jira-api\/\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/jira-api\/\",\"name\":\"Crea una Lista de Tareas Alojada en Kinsta Utilizando la API de Jira y React - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/jira-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/jira-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/jira-api.jpg\",\"datePublished\":\"2023-12-08T12:11:54+00:00\",\"dateModified\":\"2023-12-18T15:54:41+00:00\",\"description\":\"Aprende a gestionar tareas de forma eficiente con una lista de tareas alojada en Kinsta. Esta gu\u00eda aprovecha la API de Jira y React para crear una potente aplicaci\u00f3n.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/jira-api\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/jira-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/jira-api\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/jira-api.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/jira-api.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/jira-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API\",\"item\":\"https:\/\/kinsta.com\/es\/secciones\/api\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Crea una Lista de Tareas Alojada en Kinsta Utilizando la API de Jira y React\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/es\/#website\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluciones de alojamiento premium, r\u00e1pidas y seguras\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/es\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinsta.es\/\",\"https:\/\/x.com\/Kinsta_ES\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinsta.com\/es\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Crea una Lista de Tareas Alojada en Kinsta Utilizando la API de Jira y React - Kinsta\u00ae","description":"Aprende a gestionar tareas de forma eficiente con una lista de tareas alojada en Kinsta. Esta gu\u00eda aprovecha la API de Jira y React para crear una potente aplicaci\u00f3n.","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:\/\/kinsta.com\/es\/blog\/jira-api\/","og_locale":"es_ES","og_type":"article","og_title":"Crea una Lista de Tareas Alojada en Kinsta Utilizando la API de Jira y React","og_description":"Aprende a gestionar tareas de forma eficiente con una lista de tareas alojada en Kinsta. Esta gu\u00eda aprovecha la API de Jira y React para crear una potente aplicaci\u00f3n.","og_url":"https:\/\/kinsta.com\/es\/blog\/jira-api\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2023-12-08T12:11:54+00:00","article_modified_time":"2023-12-18T15:54:41+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/jira-api.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"Aprende a gestionar tareas de forma eficiente con una lista de tareas alojada en Kinsta. Esta gu\u00eda aprovecha la API de Jira y React para crear una potente aplicaci\u00f3n.","twitter_image":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/jira-api.jpg","twitter_creator":"@Kinsta_ES","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Jeremy Holcombe","Tiempo de lectura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/es\/blog\/jira-api\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/blog\/jira-api\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Crea una Lista de Tareas Alojada en Kinsta Utilizando la API de Jira y React","datePublished":"2023-12-08T12:11:54+00:00","dateModified":"2023-12-18T15:54:41+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/jira-api\/"},"wordCount":2108,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/jira-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/jira-api.jpg","inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/es\/blog\/jira-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/es\/blog\/jira-api\/","url":"https:\/\/kinsta.com\/es\/blog\/jira-api\/","name":"Crea una Lista de Tareas Alojada en Kinsta Utilizando la API de Jira y React - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/jira-api\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/jira-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/jira-api.jpg","datePublished":"2023-12-08T12:11:54+00:00","dateModified":"2023-12-18T15:54:41+00:00","description":"Aprende a gestionar tareas de forma eficiente con una lista de tareas alojada en Kinsta. Esta gu\u00eda aprovecha la API de Jira y React para crear una potente aplicaci\u00f3n.","breadcrumb":{"@id":"https:\/\/kinsta.com\/es\/blog\/jira-api\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/es\/blog\/jira-api\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/blog\/jira-api\/#primaryimage","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/jira-api.jpg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/jira-api.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/es\/blog\/jira-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"API","item":"https:\/\/kinsta.com\/es\/secciones\/api\/"},{"@type":"ListItem","position":3,"name":"Crea una Lista de Tareas Alojada en Kinsta Utilizando la API de Jira y React"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/es\/#website","url":"https:\/\/kinsta.com\/es\/","name":"Kinsta\u00ae","description":"Soluciones de alojamiento premium, r\u00e1pidas y seguras","publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/es\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinsta.es\/","https:\/\/x.com\/Kinsta_ES","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinsta.com\/es\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/72396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/comments?post=72396"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/72396\/revisions"}],"predecessor-version":[{"id":72617,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/72396\/revisions\/72617"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72396\/translations\/en"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72396\/translations\/nl"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72396\/translations\/pt"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72396\/translations\/it"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72396\/translations\/de"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72396\/translations\/fr"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72396\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72396\/translations\/es"},{"href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72396\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media\/72397"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media?parent=72396"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/tags?post=72396"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/topic?post=72396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}