OpenAPI Generator: Como Gerar Código de Cliente e Servidor API

Guia do OpenAPI Generator: instale a CLI, liste os geradores e gere SDKs de cliente e stubs de servidor a partir da sua especificação OpenAPI ou Swagger.

INEZA Felin-Michel

INEZA Felin-Michel

22 junho 2026

OpenAPI Generator: Como Gerar Código de Cliente e Servidor API

Apidog para empresas

Implantação local

SSO & RBAC

Conforme SOC 2

Explorar Apidog Enterprise

OpenAPI Generator é uma ferramenta de código aberto que transforma uma especificação OpenAPI ou Swagger em código funcional: SDKs de cliente, stubs de servidor e arquivos de configuração. Você instala sua CLI, aponta para sua especificação, escolhe um gerador como `typescript-axios` ou `spring`, e ele escreve o código em uma pasta de saída. Este guia mostra como instalá-lo, listar os geradores disponíveis e produzir clientes e servidores para várias linguagens.

botão

O que é OpenAPI Generator

OpenAPI Generator lê uma descrição de API legível por máquina e emite código-fonte a partir dela. Dê a ele um arquivo `openapi.yaml` (ou JSON) e ele pode gerar uma biblioteca cliente para chamar essa API, um stub de servidor que a implementa, além de documentação e configuração.

Ele suporta tanto OpenAPI v2 (o formato Swagger mais antigo) quanto OpenAPI v3. O projeto é mantido pela organização OpenAPITools no GitHub, com templates para dezenas de linguagens e frameworks.

A distinção principal: este é um gerador de código, não um gerador de documentação. Ferramentas de documentação como Swagger UI ou Redoc renderizam sua especificação em páginas HTML legíveis por humanos. O OpenAPI Generator, em vez disso, produz código que você compila e distribui. Ele também pode emitir documentos Markdown, mas seu trabalho principal são os SDKs e stubs.

Como se relaciona com Swagger Codegen

Se você já usou Swagger Codegen, OpenAPI Generator parecerá familiar. Ele foi bifurcado do Swagger Codegen em maio de 2018, entre as versões 2.3.1 e 2.4.0 do Swagger Codegen, por mais de 40 de seus principais colaboradores e criadores de templates.

A bifurcação ocorreu após um desacordo sobre a direção do Swagger Codegen 3.0.0. A comunidade queria um ciclo de lançamento mais rápido e aberto. As notas oficiais da bifurcação descrevem o projeto como baseado no Swagger Codegen 2.4.0-SNAPSHOT, então os dois compartilham raízes profundas. Se você está avaliando os dois, a análise de alternativas ao Swagger Codegen cobre as diferenças práticas.

Instalando OpenAPI Generator

Você tem quatro caminhos de instalação comuns. Escolha o que melhor se adapta à sua stack.

npm (mais comum)

O wrapper npm é o ponto de entrada mais fácil para a maioria das equipes. Ele baixa e gerencia o JAR subjacente para você.

npm install @openapitools/openapi-generator-cli -g

Você também pode executá-lo sem uma instalação global:

npx @openapitools/openapi-generator-cli version

Homebrew (macOS)

brew install openapi-generator

JAR autônomo

OpenAPI Generator é um aplicativo Java, então você pode baixar o JAR diretamente do Maven Central e executá-lo com Java. Isso evita completamente a camada npm ou Homebrew.

wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.23.0/openapi-generator-cli-7.23.0.jar -O openapi-generator-cli.jar
java -jar openapi-generator-cli.jar help

Verifique o Maven Central para o número da versão mais recente antes de baixar.

Docker

A imagem oficial permite gerar código sem instalar nada localmente. Monte seu diretório de trabalho no container para que ele possa ler sua especificação e gravar a saída de volta.

docker pull openapitools/openapi-generator-cli
docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate \
  -i /local/openapi.yaml -g go -o /local/out/go

Listando os geradores disponíveis

Antes de gerar qualquer coisa, veja quais geradores existem. Cada gerador tem como alvo uma linguagem mais framework, como `java`, `python` ou `spring`.

openapi-generator-cli list

Para uma visualização compacta, uma por linha, use a flag curta e divida por vírgulas:

openapi-generator-cli list -s | tr ',' '\n'

A lista separa geradores de cliente (para chamar uma API) de geradores de servidor (para implementar uma), além de geradores de documentação e esquema.

Gerando um SDK de cliente

O comando principal é `generate`. Ele leva três argumentos que você usará sempre:

Aqui está um cliente TypeScript construído em Axios:

openapi-generator-cli generate -i openapi.yaml -g typescript-axios -o ./client

Isso escreve um cliente tipado em `./client`. Cada operação em sua especificação se torna um método, e cada esquema se torna um modelo.

O mesmo padrão funciona em várias linguagens. Troque o nome do gerador e a pasta de saída:

openapi-generator-cli generate -i openapi.yaml -g java   -o ./client-java
openapi-generator-cli generate -i openapi.yaml -g python -o ./client-python
openapi-generator-cli generate -i openapi.yaml -g go     -o ./client-go

Como o código vem de uma única especificação, cada cliente permanece consistente com o contrato. Quando a especificação muda, você regenera e seus SDKs a seguem.

Gerando stubs de servidor

Geradores de servidor invertem a direção. Em vez de código que chama sua API, você obtém um andaime que a implementa, com roteamento, modelos de solicitação e interfaces de manipulador configurados. Você preenche a lógica de negócios.

Aqui está um stub de servidor Spring Boot:

openapi-generator-cli generate -i openapi.yaml -g spring -o ./server-spring

O projeto gerado oferece controladores e DTOs correspondentes à sua especificação. Você implementa os métodos da interface, e as formas de solicitação e resposta já estão definidas para você. Isso mantém o servidor em execução alinhado com o contrato publicado.

Configurando a saída

A saída padrão raramente é exatamente o que você deseja. OpenAPI Generator oferece vários controles.

Propriedades adicionais

A maioria dos geradores expõe opções por linguagem através de `--additional-properties` (alias curto `-p`). Passe-as como pares `chave=valor` delimitados por vírgulas:

openapi-generator-cli generate -i openapi.yaml -g typescript-axios -o ./client \
  --additional-properties=npmName=@acme/api-client,supportsES6=true,withSeparateModelsAndApi=true

Cada gerador documenta suas próprias propriedades, então verifique a página do gerador para a lista completa de chaves que ele aceita.

Um arquivo de configuração

Quando a linha de comando fica longa, mova as opções para um arquivo de configuração. JSON e YAML são suportados.

openapi-generator-cli generate -i openapi.yaml -g typescript-axios -o ./client -c config.yaml

Um arquivo de configuração mantém suas configurações de geração no controle de versão ao lado da especificação, o que torna as compilações reproduzíveis.

Ignorando arquivos

OpenAPI Generator lê um arquivo `.openapi-generator-ignore` no diretório de saída. Ele usa a mesma sintaxe que `.gitignore`. Use-o para impedir que o gerador sobrescreva arquivos que você editou manualmente.

# .openapi-generator-ignore
*.md
src/custom/**

Você pode apontar para um arquivo de ignorar em outro local com `--ignore-file-override <local>`.

Templates personalizados

Todo gerador é impulsionado por templates Mustache. Se a saída padrão não corresponder ao seu estilo interno, copie os templates, edite-os e passe seu diretório com `-t`:

openapi-generator-cli generate -i openapi.yaml -g typescript-axios -o ./client \
  -t ./my-templates

Esta é a ferramenta certa quando você precisa de um cabeçalho personalizado, um cliente HTTP diferente ou convenções de nomenclatura internas incorporadas em cada arquivo gerado.

Executando em CI

A geração de código pertence ao seu pipeline, não ao laptop de um único desenvolvedor. Regenerar o cliente a cada mudança na especificação para que o SDK commitado nunca se desvie do contrato. Aqui está um passo do GitHub Actions usando `npx`:

- name: Gerar cliente API
  run: npx @openapitools/openapi-generator-cli generate -i openapi.yaml -g typescript-axios -o ./client

Você pode fazer a compilação falhar se a saída regenerada for diferente do que está commitado, o que detecta especificações e SDKs que se desalinharam.

Mantenha a especificação como sua única fonte de verdade

OpenAPI Generator é tão bom quanto a especificação que você o alimenta. Entra lixo, sai lixo: uma especificação vaga ou inválida produz um SDK vago ou quebrado. Portanto, o passo mais valioso acontece antes mesmo de você executar `generate`. Você torna a especificação correta, completa e estável.

É aqui que o Apidog se encaixa. Apidog é uma plataforma de API tudo-em-um que é nativa de OpenAPI, então seu trabalho de design e sua especificação são o mesmo artefato. Você projeta ou importa a API, e Apidog mantém o documento OpenAPI como a fonte da verdade de onde tudo o mais flui.

Um fluxo de trabalho limpo se parece com isto:

  1. Projete ou importe a especificação OpenAPI no Apidog. O suporte a branch permite que você trabalhe em mudanças isoladamente, semelhante ao controle de versão OpenAPI com Git.
  2. Valide e faça lint na especificação antes de gerar. Uma especificação que passa por um linter OpenAPI e um validador Swagger produz um código mais limpo com menos surpresas.
  3. Exporte a especificação validada e, em seguida, alimente-a no OpenAPI Generator para seus SDKs e stubs.

Você também pode manter a especificação sincronizada com seu repositório, por exemplo, sincronizando a especificação OpenAPI com o GitHub, e revisar as alterações com um diff OpenAPI antes que elas sejam lançadas. Se você está migrando de ferramentas mais antigas, a comparação de alternativas ao Swagger para design e teste de API é um bom ponto de partida.

Onde o Apidog para e o OpenAPI Generator começa

Vale a pena ser preciso aqui. O Apidog não gera SDKs de cliente completos ou stubs de servidor. Esse é o trabalho do OpenAPI Generator, e os dois são complementares em vez de concorrentes.

O Apidog oferece trechos de solicitação de cliente prontos para copiar para cada endpoint, em muitas linguagens e clientes HTTP. São exemplos por solicitação que você pode colar em um script, não uma biblioteca empacotada. Para uma biblioteca gerada e versionada ou um scaffold de servidor, você executa o OpenAPI Generator na especificação que o Apidog produz.

O Apidog também oferece seu próprio test runner de linha de comando, o Apidog CLI, que é separado da geração de código. Ele executa seus testes de API em CI; ele não gera SDKs. Instale e use-o assim:

npm install -g apidog-cli@latest

apidog run \
  --access-token $APIDOG_ACCESS_TOKEN \
  -t <testScenarioId> \
  -e <envId> \
  -r cli,html \
  -n 1

Você passa a autenticação com `--access-token`, `-t` seleciona o cenário de teste, `-e` escolhe o ambiente para executar e `-r` seleciona os reporters. Execute-o em uma versão LTS atual do Node.js. Para detalhes de configuração, consulte o guia de instalação do Apidog CLI e o passo a passo sobre como testar uma API REST da linha de comando.

Então, o ciclo completo é: projetar e validar a especificação no Apidog, gerar SDKs e stubs com OpenAPI Generator e, em seguida, verificar a API em execução com o Apidog CLI.

Experimente o Apidog gratuitamente, sem necessidade de cartão de crédito.

Perguntas Frequentes

O que é OpenAPI Generator?

OpenAPI Generator é uma ferramenta de código aberto da organização OpenAPITools que gera código a partir de uma especificação OpenAPI ou Swagger. Ele produz SDKs de cliente, stubs de servidor, documentação e arquivos de configuração, e suporta tanto OpenAPI v2 quanto v3.

Como você usa OpenAPI Generator?

Instale a CLI (por exemplo, `npm install @openapitools/openapi-generator-cli -g`), depois execute `generate` com três flags: `-i` para sua especificação, `-g` para o gerador e `-o` para a pasta de saída. Execute `openapi-generator-cli list` primeiro para ver todos os geradores disponíveis.

Como funciona o OpenAPI Generator?

Ele analisa sua especificação em um modelo interno, depois renderiza esse modelo através de templates Mustache para o seu alvo escolhido. Cada operação se torna um método ou manipulador, e cada esquema se torna um modelo tipado. Você pode sobrescrever os templates com `-t` para alterar a saída.

Como você gera um SDK de cliente a partir de uma especificação OpenAPI?

Escolha um gerador de cliente e execute `generate`. Por exemplo, `openapi-generator-cli generate -i openapi.yaml -g typescript-axios -o ./client` constrói um cliente TypeScript tipado. Troque `typescript-axios` por `java`, `python` ou `go` para direcionar outras linguagens.

Como você gera stubs de servidor?

Escolha um gerador de servidor. Para um scaffold Spring Boot, execute `openapi-generator-cli generate -i openapi.yaml -g spring -o ./server-spring`. A saída inclui controladores e modelos de solicitação de sua especificação, e você implementa a lógica do manipulador.

Qual a diferença entre OpenAPI Generator e Swagger Codegen?

OpenAPI Generator foi bifurcado do Swagger Codegen em maio de 2018 por mais de 40 de seus colaboradores, que desejavam um ciclo de lançamento mais rápido e impulsionado pela comunidade. Os dois compartilham uma base comum, mas o OpenAPI Generator agora tem seu próprio roadmap, conjunto de geradores e cronograma de lançamento.

Como você gera um SDK PHP a partir de uma especificação OpenAPI?

Use o gerador `php`: `openapi-generator-cli generate -i openapi.yaml -g php -o ./client-php`. Execute `openapi-generator-cli list` para confirmar o nome exato do gerador e ver outras opções de framework PHP antes de gerar.

botão

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs