ESPAÇO PUBLICITÁRIO DISPONÍVEL · FALE CONOSCO

Como equipes de engenharia de software configuram e automatizam a documentação de API usando Mintlify e GitHub

365Finds Editorial
11.430 artigos Wiki catalogados

Use o 365 Wiki com sua IA

Copie o prompt abaixo, cole na IA que você já usa e faça sua pergunta.

Baixar o Skill completo

Experimente primeiro com o prompt. Se você usa o 365 Wiki com frequência, instale o Skill completo do 365Wiki para não precisar colá-lo novamente. Se não usa uma IA específica, as versões web do Gemini ou Microsoft Copilot também servem.

Equipes de engenharia de software frequentemente enfrentam dificuldades para manter a documentação de API sincronizada com bases de código em rápida evolução, o que resulta em endpoints quebrados, parâmetros ausentes e frustração entre os desenvolvedores. Adotar a metodologia docs-as-code combinando o Mintlify com o GitHub permite que as equipes tratem a documentação com o mesmo rigor de engenharia aplicado ao código da aplicação. Ao hospedar os arquivos de documentação diretamente em repositórios Git, configurar deploys automatizados por meio do Mintlify GitHub App e integrar especificações OpenAPI a pipelines de integração contínua (CI), as organizações de engenharia podem gerar automaticamente portais de desenvolvedor responsivos e interativos. Essa configuração elimina atualizações manuais de documentação, garante que as referências de API correspondam ao código implantado e estabelece um fluxo de trabalho de revisão contínuo por meio de pré-visualizações em pull requests.

Compreendendo a arquitetura Docs-as-Code com Mintlify e GitHub

O Mintlify opera com base no princípio de docs-as-code, no qual os arquivos-fonte de documentação residem dentro de um repositório GitHub ao lado ou adjacentes ao código de produção. Em vez de depender de sistemas de gerenciamento de conteúdo (CMS) estáticos ou ferramentas de wiki isoladas, a documentação é definida usando Markdown, componentes MDX e arquivos de configuração estruturados.

A arquitetura é composta por quatro componentes essenciais:

+-----------------------------------------------------------------------+
|                           GitHub Repository                           |
|                                                                       |
|  +----------------+  +--------------------+  +---------------------+  |
|  |   mint.json    |  |  docs/**/*.mdx     |  |    openapi.json     |  |
|  | (Site Config)  |  | (Guides & Pages)   |  | (API Specification) |  |
|  +----------------+  +--------------------+  +---------------------+  |
+-----------------------------------------------------------------------+
            |                                         ^
            | (Push to main / Open PR)                | (CI Auto-Sync)
            v                                         |
+-----------------------+                 +-----------------------+
|  Mintlify GitHub App  |                 |  GitHub Actions CI/CD |
|  - Validates syntax   |                 |  - Extract spec from  |
|  - Builds static docs |                 |    backend code       |
|  - Posts PR preview   |                 |  - Commit / Trigger   |
+-----------------------+                 +-----------------------+
            |
            v
+-----------------------------------------------------------------------+
|                      Production Documentation Site                    |
|         (Interactive Developer Portal & Live API Playground)          |
+-----------------------------------------------------------------------+

Configurando o repositório de documentação

As equipes de engenharia podem implementar o Mintlify em um repositório de documentação dedicado ou dentro de um monorepo de aplicação existente. Iniciar com uma estrutura de diretórios clara garante uma navegação intuitiva e limites bem definidos de CI/CD.

1. Estrutura do repositório

Um workspace padrão de documentação do Mintlify segue esta estrutura de arquivos:

my-docs-repo/
├── .github/
│   └── workflows/
│       └── sync-api-spec.yml
├── docs/
│   ├── api-reference/
│   │   ├── authentication.mdx
│   │   └── errors.mdx
│   ├── guides/
│   │   ├── quickstart.mdx
│   │   └── rate-limits.mdx
│   └── openapi.json
└── mint.json

2. Configurando o mint.json

O arquivo mint.json controla o tema visual, a navegação principal e a ingestão de referências de API. As equipes configuram o array navigation para organizar guias conceituais e vincular automaticamente os endpoints de API definidos na especificação OpenAPI:

{
  "$schema": "https://mintlify.com/schema.json",
  "name": "Acme Developer Platform",
  "logo": {
    "dark": "/logo/dark.svg",
    "light": "/logo/light.svg"
  },
  "favicon": "/favicon.svg",
  "colors": {
    "primary": "#0F52BA",
    "light": "#4B9CD3",
    "dark": "#002D62"
  },
  "navigation": [
    {
      "group": "Getting Started",
      "pages": [
        "docs/guides/quickstart",
        "docs/guides/rate-limits"
      ]
    },
    {
      "group": "API Reference",
      "pages": [
        "docs/api-reference/authentication",
        "docs/api-reference/errors"
      ],
      "openapi": "docs/openapi.json"
    }
  ],
  "api": {
    "baseUrl": "https://api.acme.com/v1"
  }
}

3. Desenvolvimento local com a CLI do Mintlify

Os engenheiros devem verificar as alterações de documentação localmente antes de enviá-las ao GitHub. A CLI do Mintlify oferece um servidor de desenvolvimento local com recarregamento a quente (hot-reload):

  1. Instale a CLI globalmente ou execute-a usando npx:
    npm install -g mint
    
  2. Navegue até o diretório que contém o mint.json e inicie o servidor de desenvolvimento:
    mint dev
    
  3. Abra http://localhost:3000 em um navegador. Qualquer modificação feita nos arquivos .mdx, no mint.json ou no esquema OpenAPI será recarregada instantaneamente.

Automatizando deploys com o Mintlify GitHub App

O mecanismo central de automação que conecta o GitHub ao Mintlify é o Mintlify GitHub App. Uma vez instalado, ele substitui os scripts manuais de build e deploy.

Instalação e configuração de branch

  1. Faça login no painel do Mintlify e navegue até Settings > Git Settings.
  2. Clique em Install GitHub App e selecione a organização e o repositório de destino.
  3. Configure a branch de deploy (Deployment Branch, geralmente main). Sempre que commits forem enviados ou mesclados nessa branch, o Mintlify acionará um build de produção.
  4. Se a documentação estiver localizada em uma subpasta de um monorepo (como /docs), ative a opção de subdiretório e especifique o caminho. Isso restringe os builds para que o Mintlify só seja acionado quando arquivos dentro da pasta de documentação forem alterados.

Pré-visualizações em Pull Requests e controles de revisão

Quando um engenheiro abre uma pull request que altera arquivos de documentação, o GitHub App executa automaticamente uma verificação de build e comenta na PR com uma URL de pré-visualização exclusiva:

Automatizando atualizações de especificações OpenAPI via GitHub Actions

Embora os guias conceituais sejam criados manualmente em MDX, a documentação de referência da API deve sempre derivar diretamente do código-fonte. Quando engenheiros de backend alteram rotas de endpoints, cargas úteis de requisições ou esquemas de resposta, um pipeline automatizado deve atualizar o arquivo de especificação OpenAPI no diretório de documentação.

Sincronizando especificações em um monorepo

Em um monorepo onde o código do serviço de API (por exemplo, FastAPI, Express, NestJS ou Go) reside ao lado da documentação, o GitHub Actions pode gerar a especificação mais recente a cada commit e manter a pasta de documentação atualizada.

O seguinte fluxo de trabalho do GitHub Actions demonstra a extração de um esquema OpenAPI de um serviço de backend e o acionamento de um deploy no Mintlify:

name: Sync OpenAPI Spec and Deploy Docs

on:
  push:
    branches:
      - main
    paths:
      - 'services/api/**'
      - 'docs/**'

jobs:
  sync-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v4

      - name: Set up Python Environment
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'

      - name: Install Dependencies
        run: |
          pip install -r services/api/requirements.txt

      - name: Generate OpenAPI Specification
        run: |
          python -c "import json; from services.api.main import app; print(json.dumps(app.openapi()))" > docs/openapi.json

      - name: Check for Spec Changes
        id: git-diff
        run: |
          git diff --quiet docs/openapi.json || echo "changed=true" >> $GITHUB_OUTPUT

      - name: Commit and Push Updated Spec
        if: steps.git-diff.outputs.changed == 'true'
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git add docs/openapi.json
          git commit -m "chore(docs): auto-update openapi.json from backend"
          git push origin main

      - name: Trigger Mintlify Deployment
        run: |
          curl -X POST https://api.mintlify.com/api/deploy \
            -H "Authorization: Bearer ${{ secrets.MINTLIFY_API_TOKEN }}"

Arquitetura de sincronização entre múltiplos repositórios

Em arquiteturas de microsserviços em que os serviços de backend residem em repositórios separados do portal centralizado de documentação, as equipes usam eventos de repository dispatch ou chamadas diretas de API:

  1. CI do serviço: Quando o serviço de backend é construído em seu próprio repositório, o CI gera o openapi.json.
  2. Dispatch ou PR: O fluxo de trabalho utiliza um token de acesso pessoal do GitHub para despachar um evento de webhook para o repositório de documentação, abrindo uma pull request automatizada com a especificação atualizada.
  3. Validação e mesclagem: O repositório de documentação executa o linting do esquema, gera uma pré-visualização no Mintlify e mescla a atualização após aprovação.

Melhores práticas para automação de documentação de API

Para manter um alto padrão de qualidade da documentação em equipes de engenharia em crescimento, implemente os seguintes padrões operacionais:

PráticaMecanismo de implementaçãoBenefício
Validação de esquemasExecutar mint validate ou linters spectral no CI antes de mesclar.Impede que esquemas OpenAPI corrompidos ou tipos de parâmetros inválidos cheguem à produção.
PRs atômicos de código e documentaçãoExigir alterações no código da API e atualizações correspondentes de documentação no mesmo PR.Elimina o atraso entre o deploy de uma funcionalidade e a publicação de sua documentação.
Segurança de variáveis de ambienteNunca commitar chaves de API ou segredos de produção em blocos de servidores OpenAPI.Protege a infraestrutura enquanto permite que os usuários insiram chaves de teste em playgrounds interativos.
Marcação de endpoints (Tagging)Organizar rotas OpenAPI com tags consistentes nas anotações do código.O Mintlify agrupa automaticamente os endpoints em seções de navegação estruturadas com base nas tags.
Automação de changelogGerar notas de versão em docs/changelog.mdx usando GitHub Releases ou tags do Git.Mantém os consumidores informados sobre depreciações, ajustes de limites de taxa e novos recursos.

Ao tratar a documentação de API como código, hospedar arquivos-fonte no GitHub e automatizar os pipelines de deploy e especificação, as equipes de engenharia de software podem eliminar a defasagem da documentação, acelerar o onboarding de desenvolvedores e fornecer um portal de API interativo que permanece preciso a cada release.