Cómo Usar Claude Para Solicitudes API y Networking (Obtención de Datos)

Ashley Goolam

Ashley Goolam

21 January 2026

Cómo Usar Claude Para Solicitudes API y Networking (Obtención de Datos)

Crear manualmente llamadas `fetch`, manejar tokens de autenticación y analizar las respuestas de la API para cada nueva integración es el equivalente moderno de escribir código ensamblador para aplicaciones web. Las Habilidades de Código de Claude para la obtención de datos transforman las solicitudes HTTP en herramientas declarativas y reutilizables que entienden los patrones de autenticación, la paginación y la validación de respuestas, eliminando el código repetitivo y aplicando la coherencia en todo tu código.

Por qué las habilidades de red de API son importantes para los flujos de trabajo de desarrollo

Todo desarrollador dedica horas a tareas repetitivas de fontanería de API: configurar encabezados para OAuth 2.0, implementar retroceso exponencial para puntos finales con límite de velocidad y escribir guardas de tipo para respuestas JSON impredecibles. Estas tareas son propensas a errores y están estrechamente ligadas a servicios específicos, lo que dificulta su prueba y mantenimiento. Las Habilidades de Código de Claude abstraen esta complejidad en herramientas versionadas y comprobables que tu asistente de IA puede invocar con lenguaje natural.

El cambio es de llamadas imperativas a la API a la obtención de datos declarativa. En lugar de escribir fetch(url, { headers: {...} }), describes la intención: "Obtener datos de usuario de la API de GitHub usando el token de ENV y devolver resultados tipados." La habilidad maneja la gestión de credenciales, la lógica de reintento y el análisis de respuestas, devolviendo datos fuertemente tipados que tu aplicación puede consumir inmediatamente.

💡
¿Quieres una excelente herramienta de prueba de API que genere documentación de API hermosa?

¿Quieres una plataforma integrada y todo en uno para que tu equipo de desarrolladores trabaje en conjunto con máxima productividad?

¡Apidog satisface todas tus demandas y reemplaza a Postman a un precio mucho más asequible!
botón

Configuración de la habilidad de obtención de datos en Claude Code

Paso 1: Instalar Claude Code y configurar MCP

Si aún no has instalado la CLI de Claude Code:

npm install -g @anthropic-ai/claude-code
claude --version  # Debería mostrar >= 2.0.70

Crea el directorio y archivo de configuración de MCP:

# macOS/Linux
mkdir -p ~/.config/claude-code
touch ~/.config/claude-code/config.json

# Windows
mkdir %APPDATA%\claude-code
echo {} > %APPDATA%\claude-code\config.json
claude code

Paso 2: Clonar y construir la habilidad de obtención de datos

La habilidad oficial de obtención de datos proporciona patrones para solicitudes REST, GraphQL y HTTP genéricas.

git clone https://github.com/anthropics/skills.git
cd skills/skills/data-fetching
npm install
npm run build

Esto compila los manejadores TypeScript a dist/index.js.

Paso 3: Configurar MCP para cargar la habilidad

Edita ~/.config/claude-code/config.json:

{
  "mcpServers": {
    "data-fetching": {
      "command": "node",
      "args": ["/ruta/absoluta/a/skills/data-fetching/dist/index.js"],
      "env": {
        "DEFAULT_TIMEOUT": "30000",
        "MAX_RETRIES": "3",
        "RATE_LIMIT_PER_MINUTE": "60",
        "CREDENTIALS_STORE": "~/.claude-credentials.json"
      }
    }
  }
}

Crítico:

claudes skills

Paso 4: Configurar el almacén de credenciales

Crea el archivo de credenciales para evitar codificar los tokens:

# Crear almacén de credenciales cifradas
mkdir -p ~/.claude
echo '{}' > ~/.claude/credentials.json
chmod 600 ~/.claude/credentials.json

Añade tus tokens de API:

{
  "github": {
    "token": "ghp_tu_token_github_aqui",
    "baseUrl": "https://api.github.com"
  },
  "slack": {
    "token": "xoxb-tu-token-slack",
    "baseUrl": "https://slack.com/api"
  },
  "custom-api": {
    "token": "Bearer tu-token-jwt",
    "baseUrl": "https://api.tuempresa.com",
    "headers": {
      "X-API-Version": "v2"
    }
  }
}

La habilidad lee este archivo al inicio e inyecta las credenciales en las solicitudes.

Paso 5: Verificar la instalación

claude

Una vez cargado, ejecuta:

/list-tools

Deberías ver:

Herramientas disponibles:
- data-fetching:rest-get
- data-fetching:rest-post
- data-fetching:rest-put
- data-fetching:rest-delete
- data-fetching:graphql-query
- data-fetching:graphql-mutation
- data-fetching:raw-http

Patrones de solicitudes API centrales

1. Solicitudes GET RESTful

Herramienta: data-fetching:rest-get
Caso de uso: Obtener datos de puntos finales REST con autenticación, paginación y almacenamiento en caché

Parámetros:

Ejemplo: Obtener repositorios de usuario de GitHub

Usa rest-get para obtener los repositorios del usuario "anthropics" de la API de GitHub, incluyendo paginación para 100 elementos por página, y devuelve solo el nombre, la descripción y el recuento de estrellas.

Ejecución generada:

// El manejador ejecuta:
const response = await fetch('https://api.github.com/users/anthropics/repos', {
  headers: {
    'Authorization': 'token ghp_tu_token_github_aqui',
    'Accept': 'application/vnd.github.v3+json'
  },
  params: {
    per_page: 100,
    page: 1
  }
});

// Transformar con JMESPath
const transformed = jmespath.search(response, '[*].{name: name, description: description, stars: stargazers_count}');
return transformed;

Uso de Claude Code:

claude --skill data-fetching \
  --tool rest-get \
  --params '{"service": "github", "endpoint": "/users/anthropics/repos", "params": {"per_page": 100}, "transform": "[*].{name: name, description: description, stars: stargazers_count}"}'

2. Solicitudes POST/PUT/DELETE

Herramienta: data-fetching:rest-post / rest-put / rest-delete
Caso de uso: Crear, actualizar o eliminar recursos

Parámetros:

Ejemplo: Crear una incidencia en GitHub

Usa rest-post para crear una incidencia en el repositorio anthorpics/claude con el título "Solicitud de función: Caché de herramientas MCP", el cuerpo que contenga la descripción y las etiquetas ["mejora", "mcp"].

Ejecución:

await fetch('https://api.github.com/repos/anthropics/claude/issues', {
  method: 'POST',
  headers: {
    'Authorization': 'token ghp_...',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    title: "Solicitud de función: Caché de herramientas MCP",
    body: "Descripción de la función...",
    labels: ["mejora", "mcp"]
  })
});

3. Consultas GraphQL

Herramienta: data-fetching:graphql-query
Caso de uso: Obtención de datos compleja con relaciones anidadas

Parámetros:

Ejemplo: Obtener incidencias del repositorio con comentarios

Usa graphql-query para obtener las 10 incidencias abiertas más recientes del repositorio anthorpics/skills, incluyendo título, autor, recuento de comentarios y etiquetas.
query RecentIssues($owner: String!, $repo: String!, $limit: Int!) {
  repository(owner: $owner, name: $repo) {
    issues(first: $limit, states: [OPEN], orderBy: {field: CREATED_AT, direction: DESC}) {
      nodes {
        title
        author { login }
        comments { totalCount }
        labels(first: 5) { nodes { name } }
      }
    }
  }
}

Parámetros:

{
  "service": "github",
  "query": "query RecentIssues($owner: String!, $repo: String!, $limit: Int!) { ... }",
  "variables": {
    "owner": "anthropics",
    "repo": "skills",
    "limit": 10
  }
}

4. Solicitudes HTTP sin procesar

Herramienta: data-fetching:raw-http
Caso de uso: Casos extremos no cubiertos por las herramientas REST/GraphQL

Parámetros:

Ejemplo: Entrega de webhook con encabezados personalizados

Usa raw-http para POST a https://hooks.slack.com/services/TU/WEBHOOK/URL con una carga JSON que contenga {text: "Implementación completada"}, y el encabezado personalizado X-Event: deployment-success.

Escenarios de red avanzados

Manejo de paginación

La habilidad detecta automáticamente los patrones de paginación:

// Análisis del encabezado GitHub Link
const linkHeader = response.headers.get('Link');
if (linkHeader) {
  const nextUrl = parseLinkHeader(linkHeader).next;
  if (nextUrl && currentPage < maxPages) {
    return { 
      data: currentData, 
      nextPage: currentPage + 1,
      hasMore: true 
    };
  }
}

Solicitar todas las páginas:

Usa rest-get para obtener todos los repositorios del usuario "anthropics", manejando la paginación automáticamente hasta que no haya más páginas.

La habilidad devuelve un array plano de todos los resultados.

Limitación de velocidad y lógica de reintento

Configura el comportamiento de reintento por solicitud:

{
  "service": "github",
  "endpoint": "/rate_limit",
  "maxRetries": 5,
  "retryDelay": "exponential",
  "retryOn": [429, 500, 502, 503, 504]
}

La habilidad implementa un retroceso exponencial con variación (jitter):

const delay = Math.min(
  (2 ** attempt) * 1000 + Math.random() * 1000,
  30000
);
await new Promise(resolve => setTimeout(resolve, delay));

Gestión de solicitudes concurrentes

Procesa por lotes múltiples llamadas API de manera eficiente:

Usa rest-get para obtener detalles de los repositorios: ["claude", "skills", "anthropic-sdk"], ejecutando las solicitudes concurrentemente con un máximo de 3 conexiones paralelas.

La habilidad usa p-limit para limitar la concurrencia:

import pLimit from 'p-limit';
const limit = pLimit(3); // Máximo 3 concurrentes

const results = await Promise.all(
  repos.map(repo => 
    limit(() => fetchRepoDetails(repo))
  )
);

Intercepción y simulación de solicitudes

Para realizar pruebas, intercepta las solicitudes sin acceder a las API reales:

// En la configuración de la habilidad
"env": {
  "MOCK_MODE": "true",
  "MOCK_FIXTURES_DIR": "./test/fixtures"
}

Ahora las solicitudes devuelven datos simulados de archivos JSON:

// test/fixtures/github/repos/anthropics.json
[
  {"name": "claude", "description": "Asistente de IA", "stars": 5000}
]

Aplicación práctica: Construyendo un panel de control de GitHub

Paso 1: Obtener datos del repositorio

Usa rest-get para obtener todos los repositorios de GitHub para la organización "anthropics", incluyendo descripción completa, recuento de estrellas, recuento de bifurcaciones y recuento de incidencias abiertas. Almacena los resultados en caché durante 5 minutos.

Paso 2: Enriquecer con datos de colaboradores

Para cada repositorio, obtener los principales colaboradores:

Usa rest-get para obtener las estadísticas de colaboradores del repositorio "anthropics/claude", limita a los 10 principales colaboradores y extrae el nombre de usuario y el recuento de contribuciones.

Paso 3: Generar estadísticas de resumen

Combinar datos en Claude Code:

const repos = await fetchAllRepos('anthropics');
const enrichedRepos = await Promise.all(
  repos.map(async (repo) => {
    const contributors = await fetchTopContributors('anthropics', repo.name);
    return { ...repo, topContributors: contributors };
  })
);

return {
  totalStars: enrichedRepos.reduce((sum, r) => sum + r.stars, 0),
  totalForks: enrichedRepos.reduce((sum, r) => sum + r.forks, 0),
  repositories: enrichedRepos
};

Paso 4: Publicar el panel de control

Usa rest-post para crear un sitio de GitHub Pages con los datos del panel de control usando la API de GitHub para confirmar en la rama gh-pages.

Manejo de errores y resiliencia

La habilidad categoriza los errores para un manejo adecuado:

// Errores 4xx: Errores del cliente
if (response.status >= 400 && response.status < 500) {
  throw new SkillError('client_error', `Solicitud inválida: ${response.status}`, {
    statusCode: response.status,
    details: await response.text()
  });
}

// Errores 5xx: Errores del servidor (elegibles para reintento)
if (response.status >= 500) {
  throw new SkillError('server_error', `Error del servidor: ${response.status}`, {
    retryable: true,
    statusCode: response.status
  });
}

// Errores de red: Fallos de conexión
if (error.code === 'ECONNREFUSED' || error.code === 'ETIMEDOUT') {
  throw new SkillError('network_error', 'Red inalcanzable', {
    retryable: true,
    originalError: error.message
  });
}

Claude Code recibe errores estructurados y puede decidir reintentar, abortar o solicitar la intervención del usuario.

Conclusión

Las Habilidades de Código de Claude para la red de API transforman las solicitudes HTTP ad-hoc en herramientas de obtención de datos fiables, seguras en cuanto a tipos y observables. Al centralizar la gestión de credenciales, implementar reintentos inteligentes y proporcionar un manejo estructurado de errores, eliminas las fuentes más comunes de errores de integración de API. Comienza con las cuatro herramientas principales —rest-get, rest-post, graphql-query y raw-http—, luego extiéndelas para tus casos de uso específicos. La inversión en la configuración de habilidades paga dividendos inmediatos en la coherencia del código y la velocidad de desarrollo.

Cuando tus habilidades de obtención de datos interactúen con APIs internas, valida esos puntos finales con Apidog para asegurar que tus integraciones impulsadas por IA consuman contratos fiables.

botón

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs