L’API di Kinsta non serve solo per monitorare la sicurezza di un sito o per ottenere informazioni sull’ambiente. Infatti, parte della nostra filosofia è quella di aiutarvi a semplificare i vostri flussi di lavoro di sviluppo.

Per questo motivo, gli endpoint possono accompagnarvi dalla configurazione iniziale in locale alla distribuzione iniziale e persino alla manutenzione post-lancio. L’API è in grado di gestire la maggior parte delle attività presenti nella vostra to-do list, come la creazione di ambienti, la clonazione di siti e molto altro ancora.

In questo articolo vi mostreremo come sviluppare siti utilizzando gli endpoint dell’API di Kinsta. Vedremo come integrare l’API nel vostro tipico flusso di lavoro di sviluppo e capirete come rendere il processo più efficiente e fluido. Iniziamo con una rapida panoramica di cosa è l’API di Kinsta e di cosa può fare.

Una breve panoramica sull’API Kinsta

In breve, l’API di Kinsta permette di interagire in modo programmatico con i vostri siti e ambienti sulla nostra piattaforma. Forniamo una serie di endpoint che è possibile utilizzare per eseguire diverse operazioni, come la creazione di nuovi siti WordPress, la clonazione di siti esistenti, la gestione dei backup e altro ancora.

Questa API RESTful offre molti vantaggi ai vostri progetti di sviluppo grazie alle sue caratteristiche e funzionalità chiave:

  • Automazione. È possibile automatizzare le attività e i flussi di lavoro più comuni, risparmiando tempo, riducendo lo sforzo manuale e recuperando tempo da dedicare a compiti più importanti.
  • Integrazione. L’API può essere integrata con strumenti e sistemi esistenti. L’integrazione continua e la distribuzione continua (CI/CD) sono un caso d’uso eccellente per utilizzare insieme l’API di Kinsta e strumenti di terze parti.
  • Flessibilità. L’API offre un controllo granulare su siti e ambienti, consentendo di personalizzare la configurazione in base alle proprie esigenze specifiche con poche restrizioni.

Per saperne di più su ciò che è disponibile nell’API di Kinsta, consultate la documentazione dedicata. Tuttavia, nel resto del post vedremo molti esempi, dopo aver approfondito i vantaggi che l’API può offrire.

Perché i workflow di sviluppo possono trarre vantaggio dalle API di Kinsta

La dashboard MyKinsta.

Naturalmente amiamo la dashboard di MyKinsta per il livello di dettagli, la splendida interfaccia e il livello di controllo che offre. Tuttavia, troverete la maggior parte delle funzionalità anche all’interno dell’API di Kinsta. Se siete sviluppatori, potrebbe essere interessante per voi per diversi motivi:

  1. Provisioning più veloce. L’API offrirà un modo programmatico per creare nuovi siti e ambienti WordPress. A seconda degli script che preparerete, probabilmente ridurrete il tempo necessario per creare un nuovo progetto.
  2. Collaborazione semplificata. Per i team, l’API può aiutare a clonare i siti e a creare ambienti di staging in modo rapido. Sarà un modo intelligente per collaborare e lavorare su diverse versioni di un sito allo stesso tempo.
  3. Distribuzioni automatiche. Se integrate l’API di Kinsta con la pipeline CI/CD, potrete automatizzare il processo di distribuzione in tutti gli ambienti di staging e di produzione.
  4. Configurazioni coerenti. Poiché con l’API potete configurare le impostazioni su più siti e ambienti, ridurrete gli errori e renderete i vostri flussi di lavoro più coerenti.

Ma basta parlare: passiamo all’uso dell’API di Kinsta. Inizieremo con gli endpoint che funzionano bene per lo sviluppo e poi li utilizzeremo in un flusso di lavoro.

Gli endpoint dell’API di Kinsta per lo sviluppo

Sebbene l’API di Kinsta offra molti endpoint, alcuni saranno più utilizzati di altri. Per lo sviluppo, tornerete spesso su alcuni di essi:

  • Siti WordPress. Avete a disposizione una serie di endpoint per creare, recuperare, cancellare e clonare siti.
  • Ambienti di siti WordPress. Potete anche gestire gli ambienti del sito attraverso alcuni endpoint. Ad esempio, esistono diversi modi per lavorare con i siti di staging.
  • Backup. Potreste aver bisogno di gestire i backup del sito durante lo sviluppo. Offriamo endpoint per recuperarli, ripristinarli, cancellarli e crearli.
  • Domini del sito WordPress. Se avete bisogno di aggiungere un nuovo dominio personalizzato al vostro hosting, vi consigliamo di utilizzare i nostri semplici endpoint per la gestione dei domini dei siti.

Questi endpoint coprono le funzionalità principali di cui avrete bisogno per la maggior parte dei flussi di sviluppo. Tuttavia, ce ne sono altri che possono integrare gli endpoint che usate spesso. Ad esempio, quelli che gestiscono database, distribuzione, caching e Content Delivery Network (CDN) hanno tutti un ruolo da svolgere.

Nel resto dell’articolo spiegheremo come utilizzare l’API di Kinsta per lo sviluppo reale. Nella sezione dei commenti alla fine del post, potrete anche condividere i vostri esempi in cui pensate che l’API Kinsta possa essere utile: ci piacerebbe leggerli!

Un caso d’uso reale: portare avanti lo sviluppo di un sito

Proviamo a illustrare come si può utilizzare l’API di Kinsta nella pratica. Ci sono molti modi per sviluppare WordPress, quindi vedremo come un’agenzia di web design potrebbe utilizzare l’API in un flusso di lavoro. In generale, questo comporta alcune fasi:

  1. Creare un ambiente di sviluppo locale, inizializzare un repo Git e lavorare sul sito nascente.
  2. Creare un ambiente di staging all’interno di Kinsta per i test e l’approvazione del cliente. Questo potrebbe comportare anche la creazione di un database e l’impostazione di un dominio
  3. Eseguire la configurazione tecnica, come la restrizione degli indirizzi IP dallo staging, l’inizializzazione dei backup, la modifica delle versioni PHP, l’installazione di temi e plugin WordPress e altro ancora.
  4. Eseguire attività di pre-deployment come la creazione di un CDN o l’implementazione del caching.
  5. Per l’ultima fase del flusso di lavoro, sarà necessario inviare le modifiche dall’ambiente di staging a quello di produzione.

Nonostante l’API di Kinsta sia molto presente in questo post, il nostro primo passo non ne avrà bisogno. Iniziamo a configurare l’ambiente di sviluppo locale, poi passiamo agli elementi programmatici per lo staging e la produzione.

1. Impostare un ambiente di sviluppo locale

L’ambiente locale deve essere solido e ogni sviluppatore avrà il suo approccio preferito. Naturalmente, la nostra scelta sarà DevKinsta.

La schermata iniziale di DevKinsta.

Questo può semplificare il processo di configurazione dell’ambiente locale, soprattutto se si utilizza l’hosting di Kinsta. DevKinsta è gratuito e offre molte funzionalità che altri strumenti simili non possono offrire:

  • L’applicazione viene eseguita utilizzando i container Docker, quindi è isolata dal sistema globale.
  • È possibile scegliere un dominio di primo livello (TLD) personalizzato, come .local o .staging, che si adatti al progetto e alla fase del flusso di lavoro.
  • È possibile scegliere la versione di PHP e Kinsta utilizza database MariaDB per impostazione predefinita. Quest’ultimo è fondamentale, grazie alle sue prestazioni superiori a quelle di MySQL.
  • C’è un gestore di database integrato che gira su Adminer.

DevKinsta offre anche una serie di strumenti per gli sviluppatori. Ad esempio, è possibile attivare Xdebug con un solo clic e modificare i file di configurazione php.ini e Nginx dalla schermata delle impostazioni:

L'editor del file di configurazione di Nginx all'interno di DevKinsta, che consente di modificare direttamente la configurazione di Nginx a livello di sito. L'editor contiene un esempio di codice di configurazione per un blocco server, con direttive per impostare il nome del sito, la versione e il percorso di PHP, le porte di ascolto 80 e 443 con HTTP/2 abilitato, i percorsi dei certificati SSL e dei file chiave e il nome del server che risponde a tutti gli hostname.
Modifica dei file di configurazione di Nginx in DevKinsta.

La configurazione e l’utilizzo di DevKinsta esulano dallo scopo di questo post, poiché vogliamo concentrarci sull’API di Kinsta. Tuttavia, abbiamo una documentazione completa sull’avvio dell’ambiente locale che dovrebbe essere una lettura obbligatoria.

2. Gestire gli ambienti di sviluppo locali e di staging

A questo punto, avrete un ambiente di sviluppo locale (magari DevKinsta!) e un sito abbastanza completo per passare alla fase successiva. La creazione di un ambiente di staging utilizza sia le funzionalità di DevKinsta che quelle dell’API di Kinsta. Vediamo come procedere in pochi passi.

Creare un ambiente di staging

Per prima cosa, cercate di creare un nuovo ambiente di staging con l’API di Kinsta. Potete farlo all’interno di DevKinsta attraverso i link alla dashboard MyKinsta:

Creare un nuovo ambiente del sito in DevKinsta.

Tuttavia, l’API di Kinsta ha degli endpoint che coprono ogni caso d’uso pratico. Ad esempio, si possono creare siti e ambienti sia semplici che popolati. In questo caso, vi consigliamo di utilizzare ambienti semplici, così da stare tranquilli che il sito locale si sposterà in una posizione “fresca”.

Per farlo, sarà prima necessario configurare un nuovo sito WordPress su Kinsta utilizzando l’endpoint appropriato:

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 volta creato il sito, potete ottenere un elenco di siti passando l’ID dell’azienda:

…
  "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 volta completata questa operazione, si può passare a creare l’ambiente di staging utilizzando l’ID del sito giusto:

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();

Vi consigliamo anche di creare un database per il sito di staging. Tra poco lo sovrascriverete con il vostro database locale, ma inizializzare un placeholder è una buona pratica:

…
  {
    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'
    })
  }
);
…

A seconda della configurazione, potrebbe essere necessario aggiungere un nuovo dominio a Kinsta, cosa che è possibile fare attraverso un semplice endpoint. Tuttavia, una volta che lo staging è stato configurato, è possibile cercare di inviarvi le modifiche locali.

Sincronizzare le modifiche da locale a staging

L’esatto processo di push delle modifiche allo staging dipenderà dalla configurazione e dai vostri strumenti specifici. Un approccio generale e tipico potrebbe essere il seguente:

  1. Apportare le modifiche al sito WordPress locale.
  2. Effettuare il commit delle modifiche su Git.
  3. Eseguire il push delle modifiche in remoto (ad esempio, su GitHub o GitLab).
  4. Usare DevKinsta o l’API di Kinsta per aggiornare l’ambiente di staging con le ultime modifiche.

Non ci occuperemo del controllo di versione in questa sede, ma DevKinsta offre dei pratici strumenti per aiutarvi a inviare le modifiche al vostro hosting Kinsta:

La sezione Informazioni sul sito per un sito DevKinsta. I pulsanti in alto consentono all'utente di sincronizzare l'installazione e di gestire il database. Il tipo di sito è indicato come sito personalizzato con le opzioni Push to Kinsta o Pull from Kinsta. Vengono visualizzati anche il nome del sito, il server web Nginx e la versione 7.4 di PHP.
Le opzioni di sincronizzazione con Kinsta nella schermata Informazioni sul sito di DevKinsta.

In questo modo potrete scegliere l’ambiente da tutto il vostro server di hosting. Una volta fatto questo, potete anche scegliere di inviare il vostro database – un’altra cosa che non molti strumenti di sviluppo locale permettono di fare:

Confermando un push all’interno di DevKinsta, è possibile scegliere se eseguire il push dei file, del database o entrambi.

Una volta popolato l’ambiente di staging di Kinsta, l’API vi tornerà utile. Ad esempio, potete creare uno script ed eseguire un backup iniziale, che necessita solo di un ID ambiente e di un tag:

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

Se volete, potete anche installare altri temi e plugin in questa fase. A questo punto, il nostro utilizzo di DevKinsta termina perché da qui in poi potrete distribuire il vostro sito utilizzando l’API di Kinsta.

3. Passare le modifiche dallo staging alla produzione

Prima di eseguire il push delle modifiche alla produzione, dovrete svolgere alcune operazioni cruciali, tutte con l’API di Kinsta:

A questo punto, dovrete testare completamente il vostro sito in fase di staging e ottenere l’approvazione del vostro cliente. A questo punto, potete pensare alla distribuzione. Kinsta offre un paio di opzioni per farlo:

  1. La dashboard MyKinsta permette di inviare le modifiche dallo staging alla produzione.
  2. È possibile usare l’API di Kinsta per distribuire le modifiche in modo programmatico.

Naturalmente ci concentreremo sulla seconda opzione, in quanto consente un flusso di lavoro più automatizzato e snello.

Usare l’API per distribuire le modifiche

L’API di Kinsta offre diversi modi per eseguire il push un ambiente. Potete eseguire il push dell’ambiente di staging a quello di produzione 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();

In ogni caso, è una buona idea creare un altro backup di ogni ambiente che state gestendo, in modo da poter recuperare se qualcosa va storto.

Best practice e suggerimenti per l’utilizzo dell’API di Kinsta

L’API di Kinsta è un modo potente per apportare modifiche programmatiche ai vostri siti e ambienti. Per questo motivo, dovrete fare attenzione quando la utilizzate, perché se qualcosa va storto, sarà vostra responsabilità ripararlo.

Per questo motivo, ecco alcuni suggerimenti, trucchi e best practice da integrare nel vostro flusso di lavoro di sviluppo:

  • Proteggere le credenziali API. Non condividete mai il vostro token API con nessuno, né includetelo in push remoti su Git. Utilizzate invece variabili d’ambiente o simili per memorizzare e accedere alle vostre credenziali. L’API di Kinsta include un endpoint di autenticazione per aiutarvi.
  • Fornire l’accesso in base al principio del minimo privilegio. Gestite correttamente l’accesso al vostro account Kinsta e alle API. Fornite l’accesso solo ai membri del team che ne hanno bisogno. Inoltre, è bene prevedere revisioni e aggiornamenti regolari dei permessi di accesso.
  • Utilizzare la gestione degli errori. Quando fate delle richieste API, prendete in considerazione la gestione degli errori e delle eccezioni. L’endpoint Logs può essere utile per identificare e risolvere rapidamente i problemi.
  • Mantenere l’API aggiornata. Noi ci occupiamo di tutte le modifiche e gli aggiornamenti dell’API di Kinsta, ma anche voi dovreste monitorare questo aspetto. Il changelog di Kinsta sarà la vostra prima tappa in questo senso, anche se è consigliabile analizzare la documentazione esistente alla ricerca di nuove modifiche.

Questo aspetto è molto più importante quando si tratta di collaborare con i team e di automatizzare il lavoro. La nostra ultima sezione analizza questo aspetto in modo più dettagliato.

Automatizzare il flusso di lavoro di sviluppo

Uno dei maggiori vantaggi dell’utilizzo dell’API di Kinsta è la possibilità di automatizzare le attività ripetitive del vostro flusso di lavoro di sviluppo. Scrivendo script o integrando con altri strumenti, potete ottimizzare i processi e risparmiare tempo.

Per semplificare completamente il vostro flusso di lavoro, potete automatizzare il passaggio dallo staging alla produzione integrando l’API Kinsta con la vostra pipeline CI/CD. Questo può essere un processo complesso e soggettivo che può cambiare da progetto a progetto. Ad esempio, ecco un esempio di flusso di lavoro per uno script adatto:

  1. Implementare un trigger per quando le modifiche vengono inviate a un branch specifico di Git (ad esempio un branch di release).
  2. Creare un backup manuale dell’ambiente di produzione utilizzando l’API.
  3. Sostituire l’ambiente di produzione con quello di staging utilizzando l’endpoint corrispondente.
  4. Eseguire tutte le attività post-deployment necessarie (come la cancellazione della cache, l’esecuzione di migrazioni di database e altro).

Questo è il grande vantaggio dell’API di Kinsta. Potete automatizzare quasi tutti gli aspetti del vostro flusso di lavoro per garantire distribuzioni coerenti e affidabili. Potete fare molto di più anche con questo:

  • Creare backup prima del push delle chiavi. Questa dovrebbe essere una parte importante del vostro flusso di lavoro di distribuzione, in modo da avere delle istantanee di ogni fase del processo.
  • Monitorare le prestazioni del sito e ricevere notifiche. Lo strumento APM di Kinsta può tenere sotto controllo tutte le anomalie delle metriche di cui potreste aver bisogno. Con l’API di Kinsta, avete a disposizione una serie di endpoint per monitorare metriche specifiche. Da lì, potete impostare le notifiche all’interno della dashboard MyKinsta.
  • Esaminare spesso gli utenti del sito. È disponibile un semplice endpoint che ottiene un elenco di utenti in base all’ID del sito. Impostarlo in modo che venga mostrato durante i momenti chiave del flusso di lavoro potrebbe aiutarvi a mantenere i vostri siti sicuri.

Il bello dell’API di Kinsta è il controllo che potete ottenere con i metodi programmatici. Il campo di applicazione è molto ampio e potreste persino creare dashboard personalizzati che mostrino alcune di queste metriche o opzioni per un flusso di sviluppo ancora più fluido.

Riepilogo

L’API di Kinsta è probabilmente l’unico modo per ottimizzare il vostro flusso di lavoro di sviluppo. Sfruttando i vari endpoint per la gestione di siti, ambienti, backup e altro ancora, potete automatizzare le attività ripetitive, migliorare la collaborazione e distribuire le modifiche in tutta tranquillità.

Inoltre, l’integrazione dell’API di Kinsta nel vostro processo di sviluppo può aiutarvi a personalizzare il processo per ogni progetto. Questo, a sua volta, vi aiuterà a realizzare siti di alta qualità più velocemente che mai.

Quale aspetto dell’API di Kinsta è più interessante per il vostro flusso di lavoro di sviluppo? Fatecelo sapere nella sezione commenti qui sotto!

Jeremy Holcombe Kinsta

Content & Marketing Editor presso Kinsta, web developer di WordPress e content writer. Al di fuori di tutto ciò che riguarda WordPress, mi piacciono la spiaggia, il golf e il cinema. Ho anche i problemi di tutte le persone più alte della media ;).