Pular para o conteúdo
Skillpedia
APIs e servidores (backend)48 mil · #3763

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/openapi-spec-generator/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/openapi-spec-generator/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-generator

Ou 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.md
Conteú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 $ref para qualquer esquema usado em mais de um local.
  • Inclua example ou examples em cada esquema e corpo de resposta.
  • Marque os campos obrigatórios com a matriz required.
  • Use nullable: true (OAS 3.0) ou x-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.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3763
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas