De Kinsta API is niet alleen voor het bewaken van de beveiliging van je site of het ophalen van omgevingsinformatie. In feite is een deel van onze filosofie hier om je te helpen je ontwikkelingsworkflows te stroomlijnen.

Als zodanig kunnen de endpoints je begeleiden vanaf de eerste lokale installatie tot de eerste implementatie en zelfs het onderhoud na de lancering. De API kan de meeste taken op je to-do lijst afhandelen, zoals het creëren van omgevingen, het klonen van sites en nog veel meer.

In dit artikel laten we je zien hoe je sites kunt ontwikkelen met behulp van de Kinsta API endpoints. Je leert hoe je de API kunt integreren in je typische ontwikkelworkflow en hoe je het proces efficiënter en soepeler kunt laten verlopen. Laten we beginnen met een kort overzicht van wat de Kinsta API is en wat hij kan doen.

Een korte inleiding over de Kinsta API

Kort gezegd kun je met de Kinsta API programmatisch communiceren met je sites en omgevingen op ons platform. We geven je een reeks endpoints die je kunt gebruiken om verschillende taken uit te voeren, zoals het maken van nieuwe WordPress sites, het klonen van bestaande sites, het beheren van backups en nog veel meer.

Deze RESTful API biedt veel voordelen voor je ontwikkelingsprojecten dankzij de belangrijkste functies en functionaliteit:

  • Automatisering. Je kunt veelvoorkomende taken en workflows automatiseren, wat tijd bespaart, handmatige inspanningen vermindert en je meer ruimte geeft voor belangrijkere taken.
  • Integratie. Je kunt de API integreren met je bestaande tools en systemen. Continue integratie en continue deployment (CI/CD) is een uitstekende use case om de Kinsta API en externe tools samen te gebruiken.
  • Flexibiliteit. De API kan je uitgebreide controle geven over je sites en omgevingen, zodat je je opstelling kunt aanpassen aan je specifieke behoeften met weinig beperkingen.

Als je meer wilt weten over wat er beschikbaar is binnen de Kinsta API, bekijk dan de speciale documentatie. Toch zullen we in de rest van dit artikel veel voorbeelden bekijken voor een beter begrip van de voordelen die de API je kan bieden.

Waarom je ontwikkelingsworkflows kunnen profiteren van de Kinsta API

De sectie 'Site-informatie' binnen het MyKinsta dashboard. De pagina is verdeeld in secties voor basisdetails en omgevingsdetails. Basisgegevens omvatten de locatie/datacentrum (Los Angeles, VS West 2), een bewerkbaar sitenaamveld en labels. Omgevingsdetails tonen het pad van de site, het IP-adres, de omgevingsnaam (Live), de WordPress-versie (6.5.2), het aantal PHP-medewerkers (6), host/gebruikersnaam/wachtwoord/poort voor SFTP/SSH-toegang en een SSH-terminalcommando. Er zijn knoppen waarmee de gebruiker het WP Admin scherm kan openen en de site kan bezoeken.
Het MyKinsta dashboard.

Natuurlijk houden we van het MyKinsta dashboard vanwege de diepte, de prachtige interface en de mate van controle. Maar je kunt de meeste functionaliteit ook vinden in de Kinsta API. Als je een ontwikkelaar bent, zou dit om een paar verschillende redenen interessant kunnen zijn:

  1. Snellere provisioning. De API biedt een programmatische manier om nieuwe WordPress sites en omgevingen aan te maken. Afhankelijk van de scripts die je in elkaar zet, verkort je waarschijnlijk de tijd die nodig is om een nieuw project op te zetten.
  2. Gestroomlijnde samenwerking. Voor teams kan de API je helpen om snel sites te klonen en testomgevingen te maken. Het wordt een handige manier om samen te werken en tegelijkertijd aan verschillende versies van een site te werken.
  3. Geautomatiseerde deployments. Als je de Kinsta API integreert met je CI/CD pijplijn, kun je het implementatieproces automatiseren voor al je test- en productieomgevingen.
  4. Consistente configuraties. Omdat je met de API instellingen kunt configureren voor meerdere sites en omgevingen, kun je fouten verminderen en je workflows consistenter maken.

Genoeg gepraat: laten we verder gaan met het gebruik van de Kinsta API. We beginnen met de endpoints die goed werken voor ontwikkeling en gebruiken ze vervolgens binnen je workflow.

Kinsta’s API endpoints voor ontwikkeling

Hoewel de Kinsta API veel endpoints biedt, zul je naar sommige meer neigen dan naar andere. Voor ontwikkeling zul je er steeds weer naar een paar terugkeren:

  • WordPress sites. Je hebt hier een selectie van endpoints om je te helpen bij het maken, ophalen, verwijderen en klonen van sites.
  • WordPress site omgevingen. Je kunt ook je siteomgevingen beheren via bepaalde endpoints. Je hebt bijvoorbeeld een aantal manieren om met testsites te werken.
  • Backups. Het kan zijn dat je tijdens de ontwikkeling moet werken aan het beheer van site backups. Wij bieden endpoints om ze op te halen, te herstellen, te verwijderen en te maken.
  • WordPress site domeinen. Als je een nieuw aangepast domein moet toevoegen aan je hosting, dan zijn onze eenvoudige endpoints voor het beheren van site domeinen waar je terecht kunt.

Deze endpoints dekken de kernfunctionaliteit die je nodig hebt voor de meeste ontwikkelingsworkflows. Er zijn er echter nog meer die de endpoints die je vaak gebruikt kunnen aanvullen. Zo spelen bijvoorbeeld de endpoints die databases, deployment, caching en je Content Delivery Network (CDN) afhandelen allemaal een rol.

In de rest van het artikel bespreken we hoe je de Kinsta API kunt gebruiken voor ontwikkeling. In de commentsectie aan het einde van het artikel kun je zelfs je eigen voorbeelden geven van waar jij denkt dat de Kinsta API van pas kan komen – we horen ze graag!

Een praktijkvoorbeeld: een site door de ontwikkeling loodsen

Laten we proberen te illustreren hoe je de Kinsta API in de praktijk kunt gebruiken. Er zijn veel manieren om WordPress te ontwikkelen, dus we zullen kijken naar hoe een webdesignbureau de API zou kunnen gebruiken in een workflow. Over het algemeen gaat dit in een paar stappen:

  1. Zet een lokale ontwikkelomgeving op, initialiseer een Git repo en werk aan de site.
  2. Maak een testomgeving binnen Kinsta voor testen en goedkeuring van de klant. Dit kan ook het aanmaken van een database en het opzetten van een domein inhouden.
  3. Technische instellingen uitvoeren, zoals het beperken van IP adressen van staging, backups initialiseren, PHP versies wijzigen, WordPress thema’s en plugins installeren, enzovoort.
  4. Voer pre-deployment taken uit zoals het aanmaken van een CDN of het implementeren van caching.
  5. Voor de laatste stap in de workflow moet je wijzigingen van testomgeving naar de productieomgeving pushen.

Ondanks hoe vaak de Kinsta API aan bod komt in dit artikel, hebben we die voor onze eerste stap niet nodig. Laten we beginnen met het opzetten van je lokale ontwikkelomgeving en dan verder gaan met programmatische elementen voor testomgeving en productie.

1. Een lokale ontwikkelomgeving opzetten

Je lokale omgeving moet ijzersterk zijn en elke ontwikkelaar heeft zijn eigen favoriete aanpak. Natuurlijk kiezen we hier voor DevKinsta.

Het laadscherm voor DevKinsta. Het scherm heeft een donkere interface met de naam 'DevKinsta' en een gestileerd logo in het midden. Het logo bestaat uit een hoekige, blokkerige blauwe vorm die is opgebouwd uit herhaalde elementen en lijkt op een letter D. Achter het logo is een vage achtergrondafbeelding van een bos met groene bomen en wat mist of nevel. Onder het logo staat de tekst 'Updating site urls...' om aan te geven dat de lokale omgeving wordt geconfigureerd.
Het splash-scherm van DevKinsta.

Dit kan het proces van het opzetten van je lokale omgeving vereenvoudigen, vooral als je de hosting van Kinsta gebruikt. DevKinsta is gratis en biedt je veel functionaliteit die andere vergelijkbare tools niet kunnen bieden:

  • De app draait met Docker containers, dus hij is geïsoleerd van je algemene systeem.
  • Je kunt een eigen Top-Level Domain (TLD) kiezen, zoals .local of .staging, dat past bij jouw project en workflowfase.
  • Je kunt kiezen uit verschillende PHP versies en Kinsta gebruikt standaard MariaDB databases. Dat laatste is cruciaal, dankzij de superieure prestaties ten opzichte van MySQL.
  • Er is een ingebouwde databasebeheerder die op Adminer draait.

DevKinsta biedt ook een aantal tools voor developers. Je kunt bijvoorbeeld Xdebug met één klik inschakelen en de php.ini en Nginx configuratiebestanden bewerken vanuit het instellingenscherm:

De Nginx configuratiebestand editor binnen DevKinsta, waarmee je de Nginx configuratie op siteniveau direct kunt bewerken. De editor bevat voorbeeldconfiguratiecode voor een serverblok, met richtlijnen voor het instellen van de sitenaam, PHP-versie en -pad, luisterpoorten 80 en 443 met HTTP/2 ingeschakeld, SSL-certificaat en sleutelbestandspaden, en de servernaam die reageert op alle hostnamen.
De Nginx configuratiebestanden bewerken binnen DevKinsta.

Het instellen en gebruiken van DevKinsta valt buiten het bereik van dit artikel, omdat we ons willen richten op de Kinsta API. We hebben echter een volledige documentatie over het starten met de lokale omgeving die je moet lezen.

2. De lokale en testontwikkelomgeving beheren

Op dit punt heb je een lokale ontwikkelomgeving (hopelijk DevKinsta!) en een site die compleet genoeg is om naar de volgende stap te gaan. Het maken van een testomgeving maakt gebruik van zowel de functionaliteit van DevKinsta als die van de Kinsta API. Laten we dit opsplitsen in een paar korte stappen.

Een testomgeving maken

Kijk eerst of je een nieuwe testomgeving kunt maken met de Kinsta API. Dit kun je doen binnen DevKinsta via links naar het MyKinsta dashboard:

DevKinsta's dialoogvenster voor het maken van testomgevingen. De interface toont een boomstructuur met twee mappen: 'jwk-staging' en 'Marketing Blog and Store'. De map 'Marketing Blog and Store' wordt uitgebreid met een submap genaamd 'MarkStage'. In elke map staat een link 'Nieuwe omgeving maken' met een plus-pictogram, waarmee de gebruiker extra testomgevingen kan maken binnen die mappenstructuur.
Een nieuwe siteomgeving aanmaken binnen DevKinsta.

De Kinsta API heeft echter endpoints voor elk praktisch gebruik. Je kunt bijvoorbeeld zowel gewone als bevolkte sites en omgevingen maken. We raden je aan om op dit moment gewone omgevingen te gebruiken, omdat je er dan zeker van kunt zijn dat je lokale site naar een ‘verse’ locatie wordt verplaatst.

Hiervoor moet je eerst een nieuwe WordPress site opzetten op Kinsta met het juiste endpoint:

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

Als de site er eenmaal is, kun je een lijst met sites ophalen door een bedrijfs-ID door te geven:

…
  "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"
…

Als je dit hebt gedaan, kun je de testomgeving maken met de juiste site-ID:

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

We raden je ook aan om een database aan te maken voor de testsite terwijl je hier bent. Over enkele ogenblikken zul je deze overschrijven met je lokale database, maar het initialiseren van een placeholder is een goede gewoonte:

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

Afhankelijk van je instellingen moet je misschien ook een nieuw domein toevoegen aan Kinsta, wat je kunt doen via een eenvoudig endpoint. Maar als de testomgeving eenmaal is ingesteld, kun je kijken of je je lokale wijzigingen er naartoe kunt pushen.

Wijzigingen synchroniseren van lokaal naar testomgeving

Het exacte proces voor het pushen van je wijzigingen naar de testomgeving hangt af van je specifieke opstelling en tools. Een algemene en typische aanpak kan er als volgt uitzien:

  1. Breng wijzigingen aan in je lokale WordPress site.
  2. Commit de wijzigingen naar Git.
  3. Push die wijzigingen naar remote (bijvoorbeeld GitHub of GitLab).
  4. Gebruik DevKinsta of de Kinsta API om de staging omgeving bij te werken met de laatste wijzigingen.

We zullen het versiebeheer hier niet behandelen, maar DevKinsta biedt handige tools om je te helpen wijzigingen naar je Kinsta hosting te pushen:

De sectie Site-info voor een DevKinsta-website. Met knoppen bovenaan kan de gebruiker de installatie synchroniseren en de database beheren. Het sitetype wordt weergegeven als een aangepaste site met opties voor Push naar Kinsta of Pull van Kinsta. De sitenaam, Nginx webserver en PHP versie 7.4 worden ook weergegeven.
De opties om te synchroniseren met Kinsta binnen DevKinsta’s Site info scherm.

Hiermee kun je de omgeving van je hele hostingserver kiezen. Zodra je dit hebt gedaan, kun je er ook voor kiezen om je database te pushen – opnieuw iets wat niet veel lokale ontwikkeltools je laten doen:

DevKinsta's Push site dialoog, met opties om te kiezen voor het pushen van bestanden en de database, samen met de status van de remote branch. Er zijn ook details over het type site, zoals de WordPress versie en PHP versie. Onderaan staat een selectievakje om de site in de browser te openen als de testomgeving klaar is met updaten, samen met een knop 'Push site' om de wijzigingen naar de live site te deployen.
Bevestig een push binnen DevKinsta en kies of je bestanden, je database of beide wilt pushen.

Zodra je je Kinsta testomgeving hebt gevuld, komt de API goed van pas. Je kunt bijvoorbeeld een initiële backup scripten en uitvoeren, waarvoor je alleen een omgevings-ID en tag nodig hebt:

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

Je kunt in dit stadium ook verdere thema’s en plugins installeren als je dat wilt. Hier eindigt het gebruik van DevKinsta, omdat je vanaf nu je site kunt deployen met behulp van de Kinsta API.

3. Wijzigingen van testomgeving naar productie pushen

Voordat je wijzigingen naar productie wilt pushen, moet je een paar cruciale taken uitvoeren, allemaal met de Kinsta API:

  • Werk indien nodig je IP-blokkeringslijst bij.
  • Stel je CDN en caching in.
  • Misschien moet je een andere database aanmaken voor je productiesite.
  • Misschien moet je ook een nieuwe live omgeving aanmaken.

Nu moet je je site volledig testen binnen de testomgeving en goedkeuring krijgen van je klant. Daarna kun je gaan deployen. Kinsta geeft je hiervoor een paar opties:

  1. Met het MyKinsta dashboard kun je wijzigingen van testomgeving naar productie pushen.
  2. Je kunt de Kinsta API gebruiken om wijzigingen programmatisch te deployen.

We gaan ons (natuurlijk) richten op de tweede optie, omdat die een meer geautomatiseerde en gestroomlijnde workflow mogelijk maakt.

De API gebruiken om wijzigingen te deployen

De Kinsta API biedt verschillende manieren om een omgeving te verplaatsen. Je kunt je testomgeving naar je productieomgeving pushen of deze klonen.

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

Het is een goed idee om nog een backup te maken van elke omgeving die je draait, zodat je kunt herstellen als er iets mis gaat.

Goede gebruiken en tips voor het gebruik van de Kinsta API

De Kinsta API is een krachtige manier om programmatische wijzigingen aan je sites en omgevingen door te voeren. Als zodanig moet je voorzichtig zijn bij het gebruik ervan, want als er iets misgaat, is het jouw verantwoordelijkheid om het te repareren.

Laten we met dit in gedachten een paar tips, trucs en typische werkwijzen doornemen die je zou moeten integreren in je eigen ontwikkelworkflow:

  • Beveilig je API referenties. Je zou nooit je API token met iemand moeten delen of het opnemen in Git pushes op afstand. Gebruik in plaats daarvan omgevingsvariabelen of iets dergelijks om je referenties op te slaan en er toegang toe te krijgen. De Kinsta API bevat een authenticatie endpoint om je te helpen.
  • Geef toegang op basis van het principe van de minste privileges. Beheer de toegang tot je Kinsta-account en API goed. Geef alleen toegang aan teamleden die het nodig hebben. Daarnaast moet je regelmatige controles en updates van toegangsrechten inbouwen.
  • Maak gebruik van foutafhandeling. Als je API verzoeken doet, denk dan aan een goede afhandeling van fouten en uitzonderingen. Het Logs endpoint kan hierbij helpen om problemen snel te identificeren en op te lossen.
  • Houd de API up-to-date. Wij zorgen voor wijzigingen en updates van de Kinsta API, maar jij moet dit ook in de gaten houden. De Kinsta changelog is hier je eerste stop, hoewel het ook aan te raden is om de bestaande documentatie te scannen op nieuwe wijzigingen.

Dit is veel belangrijker als het gaat om verdere samenwerking met teams en eventuele automatisering die je wilt toepassen. Onze laatste sectie gaat hier wat dieper op in.

Je ontwikkelworkflow automatiseren

Een van de grootste voordelen van het gebruik van de Kinsta API is de mogelijkheid om repetitieve taken in je ontwikkelworkflow te automatiseren. Door scripts te schrijven of te integreren met andere tools kun je processen stroomlijnen en tijd besparen.

Om je workflow volledig te stroomlijnen, kun je de push van testomgevingen naar productie automatiseren door de Kinsta API te integreren met je CI/CD pijplijn. Dit kan een complex en subjectief proces zijn dat zelfs van project tot project kan veranderen. Hier is bijvoorbeeld een voorbeeld workflow voor een geschikt script:

  1. Implementeer een trigger voor wanneer wijzigingen naar een specifieke branch binnen Git pushen (zoals een release branch).
  2. Maak een handmatige backup van de productieomgeving met behulp van de API.
  3. Vervang de productieomgeving door de testomgeving met behulp van het relevante endpoint.
  4. Voer alle noodzakelijke post-deployment taken uit (zoals het wissen van de cache, het uitvoeren van databasemigraties en meer).

Dit is het grote pluspunt van de Kinsta API. Je kunt bijna elk aspect van je workflow automatiseren om consistente en betrouwbare implementaties te garanderen. Je kunt hier nog veel meer mee doen:

  • Maak backups voor key pushes. Dit zou een groot deel van je implementatieworkflow moeten zijn, zodat je snapshots hebt van elke fase van het proces.
  • Monitor de prestaties van je site en ontvang meldingen. De APM tool van Kinsta kan alle afwijkingen in de metrics in de gaten houden. Met de Kinsta API heb je een reeks endpoints om specifieke statistieken te monitoren. Van daaruit kun je meldingen instellen in het MyKinsta dashboard.
  • Beoordeel sitegebruikers vaak. Er is een eenvoudig endpoint beschikbaar dat een lijst met gebruikers krijgt op basis van site-ID. Als je dat instelt om te laten zien tijdens belangrijke workflow-momenten, kan dat helpen om je sites veilig te houden.

Het mooie van de Kinsta API is hoeveel je kunt regelen met programmatische methoden. Het bereik is groot en je zou zelfs aangepaste dashboards kunnen maken die sommige van deze statistieken of opties laten zien voor een nog soepelere ontwikkelingsworkflow.

Samenvatting

De Kinsta API is waarschijnlijk de enige juiste manier om je ontwikkelworkflow te stroomlijnen. Door gebruik te maken van de verschillende endpoints voor het beheren van sites, omgevingen, backups en meer, kun je terugkerende taken automatiseren, de samenwerking verbeteren en wijzigingen met vertrouwen implementeren.

Bovendien kan het integreren van de Kinsta API in je ontwikkelproces je helpen om het proces voor elk project aan te passen. Dit kan je op zijn beurt helpen om sneller dan ooit sites van hoge kwaliteit op te leveren.

Welk aspect van de Kinsta API spreekt jouw ontwikkelworkflow aan? Laat het ons weten in de commentsectie hieronder!

Jeremy Holcombe Kinsta

Content & Marketing 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 ;).