La API de Kinsta no sólo sirve para controlar la seguridad de tu sitio o para obtener información sobre el entorno. De hecho, parte de nuestra filosofía es ayudarte a agilizar tus flujos de trabajo de desarrollo.

Como tal, los endpoints pueden acompañarte desde tu configuración local inicial hasta el despliegue inicial e incluso tu mantenimiento posterior al lanzamiento. La API puede gestionar la mayoría de las tareas de tu lista de tareas pendientes, como crear entornos, clonar sitios y mucho más.

En este artículo, te mostraremos cómo puedes desarrollar sitios utilizando los endpoints de la API de Kinsta. A lo largo de todo el artículo, aprenderás a integrar la API en tu flujo de trabajo de desarrollo habitual y comprenderás cómo hacer que el proceso sea más eficiente y fluido. Comencemos con una rápida visión general de lo que es la API Kinsta y lo que puede hacer.

Breve introducción a la API de Kinsta

En pocas palabras, la API Kinsta te permite interactuar mediante programación con tus sitios y entornos en nuestra plataforma. Te proporcionamos un conjunto de endpoints que puedes utilizar para realizar diversas tareas, como crear nuevos sitios de WordPress, clonar sitios existentes, gestionar copias de seguridad, etc.

Esta API RESTful ofrece muchas ventajas a tus proyectos de desarrollo gracias a sus características y funcionalidades clave:

  • Automatización. Puedes automatizar tareas y flujos de trabajo comunes, lo que puede ahorrarte tiempo, reducir el esfuerzo manual y dejarte espacio para tareas más críticas.
  • Integración. Puedes integrar la API con tus herramientas y sistemas existentes. La integración continua y el despliegue continuo (CI/CD) es un caso de uso excelente para utilizar conjuntamente la API de Kinsta y herramientas de terceros.
  • Flexibilidad. La API puede darte un control granular sobre tus sitios y entornos, permitiéndote personalizar tu configuración según tus necesidades específicas con pocas restricciones.

Si quieres saber más sobre lo que está disponible en la API de Kinsta, consulta la documentación dedicada. Aun así, veremos muchos ejemplos en el resto del post tras una inmersión más profunda en los beneficios que puede proporcionarte la API.

Por qué tus flujos de trabajo de desarrollo pueden beneficiarse de la API Kinsta

La sección "Información del sitio" dentro del panel de control de MyKinsta. La página está dividida en secciones para detalles básicos y detalles del entorno. Los detalles básicos incluyen la ubicación/centro de datos (Los Ángeles, US West 2), un campo editable para el nombre del sitio y etiquetas. Los detalles del entorno muestran la ruta del sitio, la dirección IP, el nombre del entorno (En Producción), la versión de WordPress (6.5.2), el número de PHP workers (6), el host/nombre de usuario/contraseña/puerto para el acceso SFTP/SSH y un comando de terminal SSH. Hay botones para que el usuario abra la pantalla WP Admin y visite el sitio.
El panel MyKinsta.

Por supuesto, nos encanta el panel de MyKinsta por su profundidad, su magnífica interfaz y su nivel de control. Sin embargo, también puedes encontrar la mayor parte de la funcionalidad dentro de la API de Kinsta. Si eres desarrollador, esto debería ser emocionante por varias razones:

  1. Aprovisionamiento más rápido. La API ofrecerá una forma programática de crear nuevos sitios y entornos de WordPress. Dependiendo de los scripts que prepares, es probable que reduzcas el tiempo que se tarda en configurar un nuevo proyecto.
  2. Colaboración optimizada. En los equipos, la API puede ayudarte a clonar sitios y crear entornos staging rápidamente. Será una forma ágil de colaborar y trabajar en diferentes versiones de un sitio al mismo tiempo.
  3. Despliegues automatizados. Si integras la API de Kinsta con tu canal CI/CD, podrás automatizar el proceso de despliegue en todos tus entornos staging y en producción.
  4. Configuraciones consistentes. Como puedes configurar los ajustes en varios sitios y entornos con la API, puedes reducir los errores y hacer que tus flujos de trabajo sean más coherentes.

Pero basta de charla: pasemos a utilizar la API Kinsta.
Empezaremos con los endpoints que mejor funcionan para el desarrollo y luego los utilizaremos dentro de tu flujo de trabajo.

Endpoints de la API de Kinsta para el desarrollo

Aunque la API de Kinsta ofrece muchos endpoints, te sentirás más atraído por unos que por otros. A la hora de desarrollar, utilizarás algunos de ellos una y otra vez.

Estos endpoints cubren la funcionalidad básica que necesitarás para la mayoría de los flujos de trabajo de desarrollo. Sin embargo, hay otros que pueden complementar los endpoints que utilizas a menudo. Por ejemplo, los que gestionan las bases de datos, el despliegue, el almacenamiento en caché y tu Red de Entrega de Contenidos (CDN, Content Delivery Network) desempeñan un papel importante.

Durante el resto del artículo, veremos cómo utilizar la API de Kinsta para el desarrollo en el mundo real. En la sección de comentarios, al final del artículo, puedes incluso compartir tus propios ejemplos de cómo crees que la API de Kinsta podría ser útil — ¡nos encantaría escucharlos!

Un caso de uso en el mundo real: desplegar un sitio a través de programación

Intentemos ilustrar cómo puedes utilizar la API de Kinsta en la práctica. Hay muchas formas de desarrollar en WordPress, así que veremos cómo una agencia de diseño web podría utilizar la API a lo largo de un flujo de trabajo. En general, esto implicará unos cuantos pasos:

  1. Configura un entorno de desarrollo local, inicializa un repositorio Git y trabaja en el sitio recién creado.
  2. Crear un entorno staging dentro de Kinsta para las pruebas y la aprobación del cliente. Esto también podría implicar la creación de una base de datos y la configuración de un dominio
  3. Llevar a cabo la configuración técnica, como restringir direcciones IP de staging, inicializar copias de seguridad, modificar versiones de PHP, instalar temas y plugins de WordPress, etc.
  4. Realiza tareas previas al despliegue, como crear una CDN o implementar el almacenamiento en caché.
  5. Para el último paso del flujo de trabajo, tendrás que transferir los cambios del entorno staging al de producción.

A pesar de lo mucho que aparecerá la API de Kinsta en este post, nuestro primer paso no la necesitará. Empecemos por configurar tu entorno de desarrollo local, y luego pasemos a los elementos programáticos para staging y producción.

1. Configurar un entorno de desarrollo local

Tu entorno local tiene que ser sólido como una roca, y cada desarrollador tiene su propio enfoque favorito. Por supuesto, en este caso nuestra elección será DevKinsta.

La pantalla de carga de DevKinsta. La pantalla presenta una interfaz oscura con el nombre "DevKinsta" y un logotipo con estilo en el centro. El logotipo consiste en una forma azul angulosa, en bloques, formada por elementos repetidos, que se asemeja a una letra D. Detrás del logotipo hay una imagen de fondo borrosa de un bosque con árboles verdes y algo de bruma o niebla. Debajo del logotipo, el texto dice "Actualizando las urls del sitio...", lo que indica que se está configurando el entorno local.
La pantalla de inicio de DevKinsta.

Esto puede simplificar el proceso de configuración de tu entorno local, especialmente si utilizas el alojamiento de Kinsta. DevKinsta es gratuito y te ofrece un montón de funcionalidades que otras herramientas similares no pueden ofrecerte:

  • La aplicación se ejecuta utilizando contenedores Docker, por lo que está aislada de tu sistema global.
  • Puedes elegir un Dominio de Nivel Superior (TLD, Top-Level Domain) personalizado, como .local o .staging, que se adapte a la fase de tu proyecto y flujo de trabajo.
  • Puedes elegir la versión de PHP, y Kinsta utiliza bases de datos MariaDB por defecto. Esto último es crucial, gracias a su rendimiento superior al de MySQL.
  • Hay un gestor de bases de datos integrado que se ejecuta en Adminer.

DevKinsta también proporciona una serie de herramientas a nivel de desarrollador. Por ejemplo, puedes activar Xdebug con un clic y editar los archivos de configuración php.ini y Nginx desde la pantalla de configuración:

El editor de archivos de configuración de Nginx dentro de DevKinsta, que te permite editar directamente la configuración de Nginx a nivel de sitio. El editor contiene código de configuración de ejemplo para un bloque de servidor, con directivas para establecer el nombre del sitio, la versión y la ruta de PHP, los puertos de escucha 80 y 443 con HTTP/2 activado, las rutas del certificado SSL y del archivo de claves, y el nombre del servidor que responde a todos los nombres de host.
Editar los archivos de configuración de Nginx dentro de DevKinsta.

Configurar y utilizar DevKinsta está fuera del alcance de este post, ya que queremos centrarnos en la API de Kinsta. Sin embargo, tenemos documentación completa sobre cómo empezar con el entorno local que debería ser de lectura obligatoria.

2. Gestión de los entornos de desarrollo local y staging

Llegados a este punto, tendrás un entorno de desarrollo local (¡ojalá DevKinsta!) y un sitio lo suficientemente completo como para pasar al siguiente paso. La creación de un entorno staging utiliza tanto la funcionalidad de DevKinsta como la de la API de Kinsta. Vamos a dividirlo en unos breves pasos.

Crear un entorno staging

En primer lugar, busca crear un nuevo entorno staging con la API de Kinsta. Esto es algo que puedes hacer dentro de DevKinsta a través de los enlaces al panel MyKinsta:

Cuadro de diálogo de DevKinsta para crear entornos de staging. La interfaz muestra una vista de árbol con dos carpetas: 'jwk-staging' y 'Marketing Blog and Store'. La carpeta
Crear un nuevo entorno de sitio dentro de DevKinsta.

Sin embargo, la API de Kinsta tiene endpoints para abarcar todos los casos prácticos de uso. Por ejemplo, puedes crear sitios y entornos tanto vacíos como con datos. En este punto, te recomendamos que utilices entornos vacíos, ya que puedes tener la tranquilidad de que tu sitio local se trasladará a una ubicación «limpia».

Para ello, primero tendrás que configurar un nuevo sitio de WordPress en Kinsta utilizando el endpoint adecuado:

const resp = await fetch(
  `https://api.kinsta.com/v2/sites/plain`,
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    },
    body: JSON.stringify({
      company: '54fb80af-576c-4fdc-ba4f-b596c83f15a1',
      display_name: 'First plain site',
      region: 'us-central1'
    })
  }
);

const data = await resp.json();

Una vez creado el sitio, puedes obtener una lista de sitios pasando un ID de empresa:

…
  "company": {
    "sites": [
      {
        "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1",
        "name": "firstsite",
        "display_name": "First site",
        "status": "live",
        "siteLabels": [
          {
            "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1",
            "name": "Do not remove"
…

Una vez hecho esto, puedes crear el entorno staging utilizando el ID de sitio correcto:

const siteId = 'YOUR_site_id_PARAMETER';
const resp = await fetch(
  `https://api.kinsta.com/v2/sites/${siteId}/environments/plain`,
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    },
    body: JSON.stringify({
      display_name: 'staging',
      is_premium: false
    })
  }
);

const data = await resp.json();

También te recomendamos que crees una base de datos para el sitio staging mientras estás aquí. En unos momentos, la sobrescribirás con tu base de datos local, pero inicializar un marcador de posición es una buena práctica:

…
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    },
    body: JSON.stringify({
      company_id: '54fb80af-576c-4fdc-ba4f-b596c83f15a1',
      location: 'us-central1',
      resource_type: 'db1',
      display_name: 'test-db',
      db_name: 'test-db',
      db_password: 'example-password',
      db_user: 'example-user',
      type: 'postgresql',
      version: '15'
    })
  }
);
…

Dependiendo de tu configuración, puede que también necesites añadir un nuevo dominio a Kinsta, lo que puedes hacer a través de un simple endpoint. Sin embargo, una vez que el staging esté configurado, puedes intentar enviar tus cambios locales a él.

Sincronizar cambios de local a staging

El proceso exacto para enviar tus cambios al staging dependerá de tu configuración y herramientas específicas. Un enfoque general y típico puede ser el siguiente:

  1. Realiza cambios en tu sitio local de WordPress.
  2. Confirma los cambios en Git.
  3. Envía esos cambios al repositorio remoto (por ejemplo, GitHub o GitLab).
  4. Utiliza DevKinsta o la API de Kinsta para actualizar el entorno staging con los últimos cambios.

Aquí no vamos a hablar del control de versiones, pero DevKinsta ofrece herramientas útiles para ayudarte a subir cambios a tu alojamiento Kinsta:

La sección de información de un sitio web DevKinsta. Los botones de la parte superior permiten al usuario Sincronizar la instalación y gestionar la base de datos. El tipo de sitio aparece como Sitio personalizado con opciones para Enviar a Kinsta o Extraer de Kinsta. También se muestra el nombre del sitio, el servidor web Nginx y la versión 7.4 de PHP.
Las opciones para sincronizar con Kinsta dentro de la pantalla de información del sitio de DevKinsta.

Esto te permitirá elegir el entorno de todo tu servidor de alojamiento. Una vez hecho esto, también puedes elegir enviar tu base de datos — de nuevo, algo que no muchas herramientas de desarrollo local te permiten hacer:

El cuadro de diálogo Enviar sitio de DevKinsta, que muestra las opciones para elegir enviar archivos y la base de datos, junto con el estado de la rama remota. También hay detalles sobre el tipo de sitio, como la versión de WordPress y la versión de PHP. En la parte inferior hay una casilla de verificación para abrir el sitio en el navegador cuando el entorno staging haya terminado de actualizarse, junto con un botón “Enviar sitio" para desplegar los cambios del staging en el sitio activo.
Confirmando un envío dentro de DevKinsta, y eligiendo enviar archivos, tu base de datos, o ambos.

Una vez que hayas poblado tu entorno staging en Kinsta, la API te resultará muy útil. Por ejemplo, puedes crear un script y ejecutar una copia de seguridad inicial, que sólo necesita un ID de entorno y una etiqueta:

  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    },
    body: JSON.stringify({
      tag: 'my-awesome-backup'
    })
  }
);

También puedes instalar otros temas y plugins en esta fase, si lo deseas. Llegados a este punto, terminará nuestro uso de DevKinsta, ya que a partir de ahora podrás desplegar tu sitio utilizando la API de Kinsta.

3. Enviar los cambios de staging a producción

Antes de enviar los cambios a producción, deberás realizar algunas tareas cruciales, todas ellas con la API de Kinsta:

A partir de aquí, debes probar completamente tu sitio en el entorno staging y obtener la aprobación de tu cliente. Llegados a este punto, ya puedes desplegarlo. Kinsta te ofrece un par de opciones para ello:

  1. El panel de control MyKinsta te permite enviar los cambios del staging a producción.
  2. Puedes utilizar la API de Kinsta para desplegar los cambios mediante programación.

Nos centraremos (por supuesto) en la segunda opción, ya que permite un flujo de trabajo más automatizado y racionalizado.

Utilizar la API para desplegar cambios

La API de Kinsta ofrece varias formas de mover un entorno. Puedes enviar tu entorno staging al de producción o clonarlo.

const siteId = 'YOUR_site_id_PARAMETER';
const resp = await fetch(
  `https://api.kinsta.com/v2/sites/${siteId}/environments`,
  {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json',
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    },
    body: JSON.stringify({
      source_env_id: '54fb80af-576c-4fdc-ba4f-b596c83f15a1',
      target_env_id: '54fb80af-576c-4fdc-ba4f-b596c83f15a1',
      push_db: true,
      push_files: true,
      run_search_and_replace: true
    })
  }
);

const data = await resp.json();

En cualquier caso, es una buena idea crear otra copia de seguridad de cada entorno que estés ejecutando para que puedas recuperarte si algo va mal.

Prácticas habituales y consejos para utilizar la API de Kinsta

La API de Kinsta es una potente forma de realizar cambios programáticos en tus sitios y entornos. Como tal, debes tener cuidado al utilizarla, ya que si algo va mal, será tu responsabilidad repararlo.

Teniendo esto en cuenta, repasemos algunos consejos, trucos y prácticas habituales que deberías integrar en tu propio flujo de trabajo de desarrollo:

  • Protege tus credenciales de la API. Nunca debes compartir tu token de API con nadie ni incluirlo en envíos Git remotos. En su lugar, utiliza variables de entorno o similares para almacenar y acceder a tus credenciales. La API de Kinsta incluye un endpoint de autenticación para ayudarte.
  • Proporciona acceso basado en el principio del menor privilegio. Gestiona adecuadamente el acceso a tu cuenta Kinsta y a la API. Sólo proporciona acceso a los miembros del equipo que lo necesiten. Además, debes incorporar revisiones y actualizaciones periódicas de los permisos de acceso.
  • Emplea la gestión de errores. Cuando realices solicitudes a la API, ten en cuenta la gestión de errores y excepciones. El endpoint Logs puede ayudar aquí a identificar y solucionar problemas rápidamente.
  • Mantén actualizada la API. Nosotros nos ocupamos de los cambios y actualizaciones de la API de Kinsta, pero tú también deberías supervisarlo. El changelog de Kinsta será tu primera parada aquí, aunque también se recomienda escanear la documentación existente en busca de nuevos cambios.

Esto es mucho más importante cuando se trata de colaborar con equipos y de cualquier automatización que quieras emplear. Nuestra sección final examina esto con un poco más de detalle.

Automatizar tu flujo de trabajo de desarrollo

Una de las mayores ventajas de utilizar la API de Kinsta es la posibilidad de automatizar tareas repetitivas en tu flujo de trabajo de desarrollo. Escribiendo scripts o integrándote con otras herramientas, puedes agilizar los procesos y ahorrar tiempo.

Para agilizar por completo tu flujo de trabajo, puedes automatizar el paso de staging a producción integrando la API de Kinsta con tu canal de CI/CD. Esto puede ser un proceso complejo y subjetivo que incluso puede cambiar de un proyecto a otro. Por ejemplo, aquí tienes un ejemplo de flujo de trabajo para un script adecuado:

  1. Implementa un disparador (trigger) para cuando los cambios se envíen a una rama específica dentro de Git (como una rama de lanzamiento ).
  2. Crea una copia de seguridad manual del entorno de producción utilizando la API.
  3. Sustituye el entorno de producción por el entorno staging utilizando el endpoint correspondiente.
  4. Ejecuta cualquier tarea necesaria posterior al despliegue (como borrar el caché, ejecutar migraciones de bases de datos, etc.).

Este es el gran punto a favor de la API Kinsta. Puedes automatizar casi todos los aspectos de tu flujo de trabajo para garantizar despliegues coherentes y fiables. También puedes hacer mucho más con esto:

  • Crea copias de seguridad antes de cada envío importante. Esto debería ser una parte importante de tu flujo de trabajo de despliegue, para que tengas instantáneas de cada etapa del proceso.
  • Supervisa el rendimiento del sitio y recibe notificaciones. La herramienta APM de Kinsta puede controlar cualquier anomalía en las métricas que necesites conocer. Con la API de Kinsta, dispones de un conjunto de endpoints para supervisar métricas específicas. A partir de ahí, puedes configurar notificaciones dentro del panel de control MyKinsta.
  • Revisa a menudo a los usuarios del sitio. Hay un sencillo endpoint disponible que obtiene una lista de usuarios basada en el ID del sitio. Configurarlo para que se muestre durante los momentos clave del flujo de trabajo podría ayudar a mantener tus sitios seguros.

Lo mejor de la API de Kinsta es todo lo que puedes controlar utilizando métodos programáticos. El alcance aquí es amplio, e incluso podrías crear paneles personalizados que muestren algunas de estas métricas u opciones para un flujo de trabajo de desarrollo aún más fluido.

Resumen

Podría decirse que la API de Kinsta es la única forma de agilizar tu flujo de trabajo de desarrollo. Aprovechando los diversos endpoints para gestionar sitios, entornos, copias de seguridad y más, puedes automatizar tareas repetitivas, mejorar la colaboración y desplegar cambios con confianza.

Es más, integrar la API de Kinsta en tu proceso de desarrollo puede ayudarte a personalizar el proceso para cada proyecto. Esto, a su vez, puede ayudarte a entregar sitios de alta calidad más rápido que nunca.

¿Qué aspecto de la API Kinsta atrae a tu flujo de trabajo de desarrollo? Háznoslo saber en la sección de comentarios más abajo

Jeremy Holcombe Kinsta

Editor de Contenidos y Marketing en Kinsta, Desarrollador Web de WordPress y Redactor de Contenidos. Aparte de todo lo relacionado con WordPress, me gusta la playa, el golf y el cine. También tengo problemas con la gente alta ;).