A API da Kinsta não serve apenas para você monitorar a segurança do seu site ou obter informações sobre o ambiente. Na verdade, parte da nossa filosofia aqui é ajudar você a simplificar seus fluxos de trabalho de desenvolvimento.

Assim, os endpoints podem acompanhar você desde a configuração local inicial até a implantação inicial e até mesmo a manutenção pós-lançamento. A API pode lidar com a maioria das tarefas que você tem a fazer, como criar ambientes, clonar sites e muito mais.

Neste artigo, mostraremos como você pode desenvolver sites usando os endpoints da API da Kinsta. Ao longo do texto, você aprenderá a integrar a API ao seu fluxo de trabalho de desenvolvimento típico e entenderá como tornar o processo mais eficiente e tranquilo. Vamos começar com uma rápida visão geral do que é a API da Kinsta e o que ela pode fazer.

Uma breve introdução sobre a API da Kinsta

Em resumo, a API da Kinsta permite que você interaja de forma programática com seus sites e ambientes em nossa plataforma. Fornecemos um conjunto de endpoints que você pode usar para realizar várias tarefas, como criar novos sites WordPress, clonar sites existentes, gerenciar backups e muito mais.

Essa API RESTful oferece muitos benefícios aos seus projetos de desenvolvimento, graças aos seus principais recursos e funcionalidades:

  • Automação. Você pode automatizar tarefas e fluxos de trabalho comuns, o que pode economizar tempo, reduzir o esforço manual e liberar espaço para tarefas mais importantes.
  • Integração. Você pode integrar a API às suas ferramentas e sistemas existentes. A integração e a implantação contínuas (CI/CD) são um excelente caso de uso da API da Kinsta e de ferramentas de terceiros trabalhando juntas.
  • Flexibilidade. A API pode fornecer a você controle granular sobre seus sites e ambientes, permitindo que você personalize sua configuração de acordo com suas necessidades específicas, com poucas restrições.

Se você quiser saber mais sobre o que está disponível na API da Kinsta, consulte a documentação dedicada. Mesmo assim, veremos vários exemplos no restante do artigo após um mergulho mais profundo nos benefícios que a API pode lhe oferecer.

Por que seus fluxos de trabalho de desenvolvimento podem se beneficiar da API da Kinsta

The 'Site Information' section within the MyKinsta dashboard. The page is divided into sections for basic details and environment details. Basic details include the location/data center (Los Angeles, US West 2), an editable site name field, and labels. Environment details show the site path, IP address, environment name (Live), WordPress version (6.5.2), number of PHP workers (6), host/username/password/port for SFTP/SSH access, and an SSH terminal command. There are buttons to let the user open the WP Admin screen and visit the site.
O painel MyKinsta.

Naturalmente, adoramos o painel MyKinsta, por sua profundidade, interface atraente e nível de controle. No entanto, você também pode encontrar a maior parte da funcionalidade na API da Kinsta. Se você é um desenvolvedor, isso é interessante por diferentes motivos:

  1. Provisionamento mais rápido. A API oferecerá uma maneira programática de criar novos sites e ambientes WordPress. Dependendo dos scripts que criar, você provavelmente reduzirá o tempo necessário para configurar um novo projeto.
  2. Colaboração simplificada. Para equipes, a API pode ajudar a clonar sites e criar ambientes de teste rapidamente. Torna-se uma maneira fluida de colaborar e trabalhar em diferentes versões de um site ao mesmo tempo.
  3. Implantações automatizadas. Se você integrar a API da Kinsta ao seu pipeline de CI/CD, poderá automatizar o processo de implantação em todos os seus ambientes de teste e produção.
  4. Configurações consistentes. Como você pode definir configurações para múltiplos sites e ambientes com a API, é possível reduzir erros e tornar seus fluxos de trabalho mais consistentes.

Mas chega de conversa: vamos tratar logo de usar a API da Kinsta. Começaremos com os endpoints que funcionam bem para o desenvolvimento e depois os usaremos em seu fluxo de trabalho.

Endpoints da API da Kinsta para desenvolvimento

Embora a API da Kinsta ofereça muitos endpoints, você irá gostar mais de uns do que de outros. No desenvolvimento, você usará alguns deles com mais frequência:

Esses endpoints abrangem a funcionalidade principal de que você precisará para a maioria dos fluxos de trabalho de desenvolvimento. No entanto, há outros que podem complementar os endpoints que você usa com frequência. Por exemplo, os que lidam com bancos de dados, implantação, armazenamento em cache e sua rede de distribuição de conteúdo (CDN) têm todos uma função a desempenhar.

No restante do artigo, mostraremos como você pode usar a API da Kinsta para desenvolvimento no mundo real. Na seção de comentários no final do artigo, você pode até mesmo compartilhar seus próprios exemplos de onde acha que a API da Kinsta pode ser útil – adoraremos ouvir!

Um caso de uso no mundo real: impulsionando um site durante o desenvolvimento

Vamos tentar ilustrar como você pode usar a API da Kinsta na prática. Há muitas maneiras de desenvolver o WordPress; assim, veremos como uma agência de web design pode usar a API em um fluxo de trabalho. Em geral, isso envolverá algumas etapas:

  1. Configure um ambiente de desenvolvimento local, inicialize um repositório Git e trabalhe no site incipiente.
  2. Crie um ambiente de teste na Kinsta para testes e aprovação do cliente. Isso também pode envolver a criação de um banco de dados e a configuração de um domínio.
  3. Realize a configuração técnica, incluindo restringir endereços IP do ambiente de teste, inicializar backups, modificar versões do PHP, instalar temas e plugins WordPress, e muito mais.
  4. Execute tarefas de pré-implantação, tais como criar um CDN ou implementar o cache.
  5. Na etapa final do fluxo de trabalho, você precisará enviar as alterações do ambiente de teste para o de produção.

Apesar de a API da Kinsta estar presente ao longo de todo este artigo, nossa primeira etapa não precisará dela. Vamos começar configurando seu ambiente de desenvolvimento local e, em seguida, passar para os elementos programáticos de teste e produção.

1. Configuração de um ambiente de desenvolvimento local

Seu ambiente local precisa ser sólido como uma rocha, e cada desenvolvedor terá sua própria abordagem favorita. Obviamente, nossa escolha aqui será o DevKinsta.

The loading screen for DevKinsta. The screen features a dark interface with the 'DevKinsta' name and a stylized logo in the center. The logo consists of an angular, blocky blue shape made up of repeated elements, resembling a letter D. Behind the logo is a blurred background image of a forest with green trees and some mist or fog. Below the logo, text reads 'Updating site urls...' indicating the local environment is being configured.
A tela inicial do DevKinsta.

Isso pode simplificar o processo de configuração do seu ambiente local, especialmente se você usar a hospedagem da Kinsta. O DevKinsta é gratuito e oferece muitas funcionalidades que outras ferramentas semelhantes não têm:

  • O aplicativo é executado usando contêineres do Docker, sendo assim isolado do seu sistema global.
  • Você pode escolher um domínio de nível superior (TLD) personalizado, como .local ou .staging, que se adapte ao estágio do seu projeto e fluxo de trabalho.
  • Você pode escolher a versão do PHP, e a Kinsta usa bancos de dados MariaDB por padrão. Esse último é fundamental, graças ao seu desempenho superior ao do MySQL.
  • Há um gerenciador de banco de dados integrado que é executado no Adminer.

O DevKinsta também fornece várias ferramentas de nível de desenvolvedor. Por exemplo, você pode ativar o Xdebug com um clique e editar os arquivos de configuração php.ini e Nginx na tela de configurações:

The Nginx configuration file editor within DevKinsta, which lets you edit the site-level Nginx config directly. The editor contains example config code for a server block, with directives for setting the site name, PHP version and path, listen ports 80 and 443 with HTTP/2 enabled, SSL certificate and key file paths, and the server name responding to all hostnames.
Editando os arquivos de configuração do Nginx no DevKinsta.

A configuração e o uso do DevKinsta estão além do escopo deste artigo, pois queremos nos concentrar na API da Kinsta. No entanto, temos uma documentação completa sobre como começar com o ambiente local que deveria ser leitura obrigatória.

2. Gerenciando os ambientes de desenvolvimento local e de teste

Neste ponto, você terá um ambiente de desenvolvimento local (esperamos que seja o DevKinsta!) e um site completo o suficiente para passar para a próxima etapa. Ao criar um ambiente de teste, você usa tanto a funcionalidade do DevKinsta quanto da API da Kinsta. Vamos dividir isso em algumas etapas curtas.

Criando um ambiente de teste

Primeiro, você deve criar um novo ambiente de teste com a API da Kinsta. Isso é algo que você pode fazer no DevKinsta por meio de links para o painel MyKinsta:

DevKinsta’s dialog for creating staging environments. The interface displays a tree view with two folders: 'jwk-staging' and 'Marketing Blog and Store'. The 'Marketing Blog and Store' folder is expanded to show a subfolder called 'MarkStage'. Inside each folder is a link labeled 'Create new environment' with a plus icon, which lets the user create additional staging environments within that folder structure.
Criando um novo ambiente de site dentro do DevKinsta.

Todavia, a API da Kinsta tem endpoints para cobrir todos os casos de uso prático. Por exemplo, você pode criar sites e ambientes simples ou populosos. Recomendamos usar ambientes simples neste momento, para ter a tranquilidade de saber que seu site local será movido para um local “novo”.

Isso exigirá que você primeiro configure um novo site WordPress na Kinsta usando o endpoint apropriado:

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

Quando o site estiver instalado, você poderá obter uma lista de sites passando um 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"
…

Após concluir isso, você poderá criar o ambiente de teste usando o ID do site correto:

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

Também recomendamos que você crie um banco de dados para o site de teste enquanto estiver aqui. Em alguns instantes, você o substituirá pelo banco de dados local, mas inicializar um espaço reservado é uma boa prática:

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

Dependendo da sua configuração, talvez você também precise adicionar um novo domínio à Kinsta, o que pode ser feito por meio de um endpoint simples. No entanto, depois que o ambiente de teste estiver configurado, você pode tentar enviar suas alterações locais para lá.

Sincronização de alterações de local para teste

O processo exato para enviar suas alterações para o ambiente de teste dependerá da sua configuração e ferramentas específicas. Uma típica abordagem geral pode se parecer com a seguinte:

  1. Faça alterações em seu site WordPress local.
  2. Faça o commit das alterações no Git.
  3. Envie essas alterações para um local remoto (por exemplo, GitHub ou GitLab).
  4. Use o DevKinsta ou a API da Kinsta para atualizar o ambiente de teste com as alterações mais recentes.

Não abordaremos o controle de versão aqui, mas o DevKinsta oferece ferramentas úteis para enviar as alterações para a sua hospedagem Kinsta:

The Site info section for a DevKinsta website. Buttons at the top let the user Sync the install and manage the database. The site type is listed as a Custom site with options to Push to Kinsta or Pull from Kinsta. The site name, Nginx webserver, and PHP version 7.4 are also displayed.
As opções para sincronizar com a Kinsta na tela Informações do site do DevKinsta.

Isso permitirá escolher o ambiente de todo o seu servidor de hospedagem. Depois de fazer isso, você também pode optar por enviar seu banco de dados – novamente, algo que não é permitido por muitas ferramentas de desenvolvimento local:

DevKinsta’s Push site dialog, showing options to choose to push files and the database, along with the status of the remote branch. There are also details about the site type, such as the WordPress version and PHP version. At the bottom is a checkbox to open the site in the browser when the staging environment is finished updating, along with a 'Push site' button to deploy the staged changes to the live site.
Confirmando um push dentro do DevKinsta, e optando por enviar arquivos, seu banco de dados, ou ambos.

Depois que você preencher seu ambiente de teste da Kinsta, a API será útil. Por exemplo, você pode criar um script e executar um backup inicial, que só precisa de um ID de ambiente e uma tag:

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

Você também pode instalar outros temas e plugins nesse estágio, se desejar. Neste ponto, nosso uso do DevKinsta terminará, porque você pode implantar seu site usando a API da Kinsta daqui pra frente.

3. Transferindo alterações do teste para a produção

Antes de enviar as alterações para a produção, você deverá realizar algumas tarefas cruciais, todas com a API da Kinsta:

A partir daqui, você deve testar totalmente o seu site no ambiente de teste e obter a aprovação do cliente. Nesse ponto, você pode procurar fazer a implantação. A Kinsta oferece a você algumas opções para isso:

  1. O painel MyKinsta permite que você envie as alterações do teste para a produção.
  2. Você pode usar a API da Kinsta para implantar alterações de forma programática.

Vamos (obviamente) nos concentrar na segunda opção, pois permite que você tenha um fluxo de trabalho mais automatizado e simplificado.

Usando a API para implementar alterações

A API da Kinsta oferece várias maneiras de mover um ambiente. Você pode enviar seu ambiente de teste para o de produção ou cloná-lo.

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

Independentemente disso, é uma boa ideia criar outro backup de cada ambiente que você está executando para ser recuperado se algo der errado.

Práticas e dicas típicas para usar a API da Kinsta

A API da Kinsta é uma maneira poderosa de realizar alterações programáticas em seus sites e ambientes. Por isso, você precisa tomar cuidado ao usá-la, pois se algo der errado, será sua responsabilidade corrigir isso.

Com isso em mente, vamos examinar algumas dicas, truques e práticas típicas que você deve integrar ao seu próprio fluxo de trabalho de desenvolvimento:

  • Proteja suas credenciais de API. Você nunca deve compartilhar seu token de API com ninguém ou incluí-lo em pushs remotos do Git. Em vez disso, use variáveis de ambiente ou similares para armazenar e acessar suas credenciais. A API da Kinsta inclui um endpoint de autenticação para ajudar você.
  • Forneça acesso com base no princípio do menor privilégio. Gerencie adequadamente o acesso à sua conta Kinsta e à API. Forneça acesso apenas aos membros da equipe que precisam dele. Além disso, você deve incluir revisões e atualizações regulares de todas as permissões de acesso.
  • Empregue o tratamento de erros. Ao fazer solicitações de API, considere o tratamento suave de erros e exceções. O endpoint Logs pode ajudá-lo nisso ao identificar e corrigir problemas rapidamente.
  • Mantenha a API atualizada. Nós cuidamos de todas as alterações e atualizações da API da Kinsta, mas você também deve monitorá-la. O changelog da Kinsta será sua primeira parada aqui, embora também seja recomendável que você examine a documentação existente em busca de novas alterações.

Isso é muito mais importante quando se trata de colaboração adicional com equipes e qualquer automação que você queira empregar. Nossa seção final aborda isso com um pouco mais de detalhes.

Automatizando seu fluxo de trabalho de desenvolvimento

Um dos maiores benefícios de usar a API da Kinsta é a capacidade de automatizar tarefas repetitivas em seu fluxo de trabalho de desenvolvimento. Ao escrever scripts ou integrar-se a outras ferramentas, você pode simplificar os processos e economizar tempo.

Para otimizar totalmente o seu fluxo de trabalho, você pode automatizar o push do teste à produção integrando a API da Kinsta ao seu pipeline de CI/CD. Esse pode ser um processo complexo e subjetivo que talvez até mude de projeto para projeto. Por exemplo, aqui está um exemplo de fluxo de trabalho para um script adequado:

  1. Implemente um acionador para quando as alterações forem enviadas para um branch específico no Git (como um branch de lançamento).
  2. Crie um backup manual do ambiente de produção usando a API.
  3. Substitua o ambiente de produção pelo ambiente de teste usando o endpoint relevante.
  4. Execute todas as tarefas de pós-implantação necessárias (como limpar o cache, executar migrações de banco de dados e outras).

Esse é o grande ponto positivo da API da Kinsta. Você pode automatizar quase todos os aspectos do seu fluxo de trabalho para garantir implantações consistentes e confiáveis. E ainda há muito mais que você pode fazer:

  • Crie backups antes de fazer push de chaves. Isso deve ser uma grande parte do seu fluxo de trabalho de implantação para que você tenha instantâneos de cada etapa do processo.
  • Monitore o desempenho do site e receba notificações. A ferramenta APM da Kinsta pode manter o controle sobre quaisquer anomalias nas métricas de que você precise saber. Com a API da Kinsta, você tem um conjunto de endpoints para monitorar métricas específicas. A partir daí, você pode configurar notificações no painel MyKinsta.
  • Analise os usuários do site com frequência. Há um endpoint simples disponível que obtém uma lista de usuários com base no ID do site. Se você configurar isso para ser exibido durante os principais momentos do fluxo de trabalho, poderá ajudar a manter seus sites seguros.

A beleza da API da Kinsta é o quanto você pode controlar usando métodos programáticos. O escopo é amplo, e você pode até mesmo criar painéis personalizados que mostrem algumas dessas métricas ou opções para um fluxo de trabalho de desenvolvimento ainda mais suave.

Resumo

A API da Kinsta é provavelmente a melhor maneira de otimizar seu fluxo de trabalho de desenvolvimento. Ao aproveitar os vários endpoints para gerenciar sites, ambientes, backups, entre outros, você pode automatizar tarefas repetitivas, melhorar a colaboração e implantar alterações com confiança.

Além disso, a integração da API da Kinsta ao seu processo de desenvolvimento pode ajudar a personalizar o processo para cada projeto. Isso, por sua vez, pode ajudá-lo a entregar sites de alta qualidade mais rápido do que nunca.

Que aspecto da API da Kinsta se destaca no seu fluxo de trabalho de desenvolvimento? Conte-nos na seção de comentários abaixo!

Jeremy Holcombe Kinsta

Editor de Conteúdo & Marketing na Kinsta, Desenvolvedor Web WordPress e Escritor de Conteúdo. Fora do universo WordPress, eu curto praia, golfe e filmes. Também enfrento problemas de gente alta ;).