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

api-sdk-generator

Faz seu agente criar bibliotecas para usar APIs em diferentes linguagens. Isso facilita a integração de sistemas.

O que ela faz

Esta ferramenta cria automaticamente códigos (chamados SDKs) que facilitam a comunicação com APIs (serviços online). Ela gera bibliotecas para que outros programas possam usar esses serviços de forma mais simples e organizada, definindo como os dados devem ser enviados e recebidos.

Quando usar

  • ✓Quando você precisa que um programa converse com um serviço online (API).
  • ✓Ao criar um novo aplicativo que usará dados de uma API existente.
  • ✓Para organizar e simplificar o acesso a uma API em seu código.

Exemplo do que pedir para a IA

“Gere um SDK em Python para a API de gerenciamento de usuários, incluindo modelos de requisição/resposta e tratamento de erros.”

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/api-sdk-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/api-sdk-generator/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta analisa a descrição da API e gera arquivos de código que definem como se conectar, enviar comandos e receber respostas. Ela organiza esse código em pastas para facilitar o uso.

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 api-sdk-generator

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/api-sdk-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.

Habilidade de SDK e Geração de Código para API

Quando Usar

Use esta habilidade quando precisar gerar código de SDK de cliente, bibliotecas de wrapper de API, modelos de solicitação/resposta e padrões de uso específicos da linguagem para qualquer API REST. Use sempre que o usuário pedir para "gerar um SDK", "escrever uma biblioteca de cliente", "criar wrappers de API", "gerar tipos TypeScript a partir da minha API", "escrever um Python...

Gere bibliotecas de cliente e código de SDK de qualidade de produção para qualquer API em qualquer idioma.


Estrutura do SDK (qualquer idioma)

sdk/
├── client.{ext}          — main client class with base URL, auth, retry
├── resources/
│   ├── users.{ext}       — one file per API resource
│   ├── orders.{ext}
│   └── ...
├── models/
│   ├── user.{ext}        — request/response data models
│   └── ...
├── errors.{ext}          — typed error classes
└── utils/
    ├── retry.{ext}
    └── pagination.{ext}

Padrão de Cliente Base

Python

import httpx
from typing import Optional
import time

class APIClient:
    def __init__(self, api_key: str, base_url: str = "https://api.example.com/v1"):
        self.base_url = base_url
        self._headers = {
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json",
            "User-Agent": "example-sdk-python/1.0.0"
        }
        self._client = httpx.Client(timeout=30.0)

    def _request(self, method: str, path: str, **kwargs) -> dict:
        url = f"{self.base_url}{path}"
        for attempt in range(3):
            try:
                resp = self._client.request(method, url, headers=self._headers, **kwargs)
                if resp.status_code == 429:
                    retry_after = int(resp.headers.get("Retry-After", 2 ** attempt))
                    time.sleep(retry_after)
                    continue
                resp.raise_for_status()
                return resp.json()
            except httpx.HTTPStatusError as e:
                raise APIError(e.response.status_code, e.response.json()) from e
        raise RateLimitError("Max retries exceeded")

TypeScript

class APIClient {
  private readonly baseUrl: string;
  private readonly headers: Record<string, string>;

  constructor(apiKey: string, baseUrl = 'https://api.example.com/v1') {
    this.baseUrl = baseUrl;
    this.headers = {
      'Authorization': `Bearer ${apiKey}`,
      'Content-Type': 'application/json',
    };
  }

  async request<T>(method: string, path: string, body?: unknown): Promise<T> {
    const res = await fetch(`${this.baseUrl}${path}`, {
      method,
      headers: this.headers,
      body: body ? JSON.stringify(body) : undefined,
    });
    if (!res.ok) {
      const err = await res.json();
      throw new APIError(res.status, err.message);
    }
    return res.json() as T;
  }
}

Padrão de Classe de Recurso

Python

from dataclasses import dataclass
from typing import Optional, List

@dataclass
class User:
    id: str
    name: str
    email: str
    created_at: str
    role: Optional[str] = None

class UsersResource:
    def __init__(self, client: APIClient):
        self._client = client

    def list(self, page: int = 1, limit: int = 20) -> List[User]:
        data = self._client._request("GET", f"/users?page={page}&limit={limit}")
        return [User(**u) for u in data["data"]]

    def get(self, user_id: str) -> User:
        data = self._client._request("GET", f"/users/{user_id}")
        return User(**data)

    def create(self, name: str, email: str, role: Optional[str] = None) -> User:
        payload = {"name": name, "email": email}
        if role:
            payload["role"] = role
        data = self._client._request("POST", "/users", json=payload)
        return User(**data)

    def delete(self, user_id: str) -> None:
        self._client._request("DELETE", f"/users/{user_id}")

Classes de Erro Tipadas

class APIError(Exception):
    def __init__(self, status_code: int, message: str):
        self.status_code = status_code
        self.message = message
        super().__init__(f"HTTP {status_code}: {message}")

class AuthenticationError(APIError): pass   # 401
class AuthorizationError(APIError): pass    # 403
class NotFoundError(APIError): pass         # 404
class ValidationError(APIError): pass       # 422
class RateLimitError(APIError): pass        # 429
class ServerError(APIError): pass           # 5xx

Auxiliar de Paginação

def paginate(resource_method, **kwargs):

…
Perguntas frequentes

O que é um SDK?

SDK significa 'Kit de Desenvolvimento de Software'. É um conjunto de ferramentas e códigos que ajuda desenvolvedores a criar aplicativos que interagem com um serviço específico, como uma API.

O que é uma API?

API significa 'Interface de Programação de Aplicações'. É um conjunto de regras e definições que permite que diferentes softwares se comuniquem entre si.

Por que usar um SDK gerado automaticamente?

Ele economiza tempo e garante que a comunicação com a API seja feita de forma padronizada e correta, seguindo as melhores práticas de programação.

Detalhes

Descrição original do autor

Generates client SDK code, API wrapper libraries, request/response models, and language-specific usage patterns for any REST API.

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas