openapi-spec-generator
Ajuda seu agente a criar especificações técnicas para APIs a partir de descrições simples. Facilita a documentação e o desenvolvimento de APIs.
O que ela faz
Esta ferramenta cria um documento técnico (chamado especificação OpenAPI ou Swagger) que descreve como uma API (um serviço que softwares usam para conversar entre si) funciona. Ela pode gerar esse documento a partir de descrições em linguagem natural, código ou de um documento incompleto.
Quando usar
- ✓Quando você precisa descrever uma API para outros desenvolvedores.
- ✓Ao criar a documentação técnica de um serviço web.
- ✓Se você já tem um rascunho da sua API e quer transformá-lo em um padrão.
Exemplo do que pedir para a IA
“Crie uma especificação OpenAPI para uma API que gerencia tarefas, com endpoints para listar, criar e atualizar tarefas. Use o formato YAML.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A IA analisa sua descrição ou código para entender os detalhes da sua API, como os dados que ela usa e as ações que ela pode realizar. Em seguida, ela monta um documento técnico completo seguindo os padrões OpenAPI ou Swagger.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill openapi-spec-generatorOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/openapi-spec-generator/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Gerador de Especificação OpenAPI / Swagger
Quando Usar
Use esta habilidade quando precisar gerar especificações completas e prontas para produção do OpenAPI 3.x e Swagger 2.0 a partir de descrições em linguagem natural, código ou especificações parciais. Use esta habilidade sempre que o usuário mencionar OpenAPI, Swagger, especificação de API, documentação de API REST, esquema de API YAML/JSON, documentação de endpoint, API...
Gere especificações completas e válidas do OpenAPI 3.x ou Swagger 2.0 a partir de descrições, código ou especificações parciais.
Fluxo de Trabalho
Passo 1 — Reunir Contexto
Antes de escrever qualquer YAML/JSON, pergunte (ou infira do contexto) o seguinte:
| Pergunta | Por que é importante |
|---|---|
| OpenAPI 3.x ou Swagger 2.0? | Diferente info, servers/host, components/definitions estrutura |
| Formato de saída: YAML ou JSON? | YAML é o padrão, a menos que o usuário especifique JSON |
| O que esta API faz? | Define info.title, info.description, tags |
| Lista de endpoints (ou código para extrair)? | Objeto de caminhos principal |
| Tipo(s) de autenticação? | securitySchemes — veja referência |
| Modelos de dados ou entidades comuns? | components/schemas / definitions |
| Alguma especificação parcial existente para estender? | Mesclar em vez de sobrescrever |
Se o usuário fornecer código (rotas Express, FastAPI, URLs Django, controladores Spring, etc.), extraia os endpoints automaticamente — não pergunte o que o usuário já lhe disse.
Passo 2 — Construir a Especificação
Siga o guia de estrutura para a versão escolhida. Produza sempre uma especificação completa e válida — nunca deixe comentários de espaço reservado como # TODO: add schema.
Esqueleto OpenAPI 3.x
openapi: "3.1.0"
info:
title: <API Title>
version: "1.0.0"
description: <Short description>
contact:
name: <Team or Author>
email: <contact@example.com>
servers:
- url: https://api.example.com/v1
description: Production
- url: https://staging-api.example.com/v1
description: Staging
tags:
- name: <Tag>
description: <Tag description>
paths:
/resource:
get:
summary: List resources
operationId: listResources
tags: [<Tag>]
parameters: []
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: "#/components/schemas/ResourceList"
example:
items: []
total: 0
"401":
$ref: "#/components/responses/Unauthorized"
"500":
$ref: "#/components/responses/InternalError"
security:
- BearerAuth: []
components:
schemas: {}
responses:
Unauthorized:
description: Authentication required
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
InternalError:
description: Internal server error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
securitySchemes: {}
Esqueleto Swagger 2.0
swagger: "2.0"
info:
title: <API Title>
version: "1.0.0"
description: <Short description>
host: api.example.com
basePath: /v1
schemes: [https]
consumes: [application/json]
produces: [application/json]
tags: []
paths: {}
definitions: {}
securityDefinitions: {}
Passo 3 — Esquemas e Modelos
- Sempre use
$refpara qualquer esquema usado em mais de um local. - Inclua
exampleouexamplesem cada esquema e corpo de resposta. - Marque os campos obrigatórios com a matriz
required. - Use
nullable: true(OAS 3.0) oux-nullable: true(Swagger 2.0) para campos opcionais anuláveis. - Prefira palavras-chave
format:int32,int64,float,date,date-time,uuid,email,uri,byte,binary.
Padrões comuns de esquema:
# Wrapper de paginação
PagedResult:
type: object
required: [items, total, page, pageSize]
properties:
items:
type: array
items:
$ref: "#/components/schemas/Resource"
total:
type: integer
format: int64
example: 100
page:
type: integer
format: int32
example: 1
pageSize:
type: integer
format: int32
example: 20
# Erro padrão
Error:
type: object
required: [code, message]
properties:
code:
type: string
example: RESOURCE_NOT_FOUND
message:
type: string
example: O recurso solicitado não foi encontrado.
details:
type: object
additionalProperties: true
# Mixin de timestamps (use allOf)
Timestamps:
type: object
properties:
createdAt:
…
Perguntas frequentes
O que é OpenAPI/Swagger?
São padrões para descrever APIs. Eles ajudam a documentar como um serviço web funciona, facilitando a integração entre diferentes softwares.
Qual a diferença entre OpenAPI e Swagger?
OpenAPI é o nome do padrão atual. Swagger é uma ferramenta popular que implementa esse padrão e também se refere a versões mais antigas do padrão.
Preciso saber programar para usar?
Não necessariamente. Você pode descrever a API em linguagem natural, e a ferramenta a transformará no documento técnico.
Detalhes
Descrição original do autor
Generate complete, production-ready OpenAPI 3.x and Swagger 2.0 specifications from natural language descriptions, code, or partial specs.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3763
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC