Communitygithub.com

sickn33/api-patterns

Principios de diseño de API y toma de decisiones. Selección entre REST vs GraphQL vs tRPC, formatos de respuesta, versionado, paginación.

¿Qué es api-patterns?

Este skill proporciona una guía práctica y completa sobre principios de diseño de API, ayudando a desarrolladores y agentes de IA a tomar decisiones informadas sobre la selección del estilo de API más adecuado (REST, GraphQL, tRPC), formatos de respuesta, estrategias de versionado y técnicas de paginación. Es útil para arquitectos de software, ingenieros backend y equipos que buscan estandarizar sus APIs, ya que cubre criterios como complejidad de datos, rendimiento, escalabilidad y casos de uso. Es compatible con cualquier plataforma que implemente APIs (Node.js, Python, Java, etc.) y se basa en las mejores prácticas de la industria, ofreciendo una estructura de decisión basada en árboles de comparación y ejemplos concretos. Al utilizar este skill, el agente puede evaluar rápidamente las compensaciones entre API RESTful, GraphQL (con su flexibilidad de consultas) y tRPC (con su tipado seguro sin código adicional), y recomendar la opción óptima para un proyecto dado.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/api-patterns

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace api-patterns?

Principios de diseño de API y toma de decisiones. Selección entre REST vs GraphQL vs tRPC, formatos de respuesta, versionado, paginación.

Descripción General

Este skill ayuda a diseñar APIs modernas, escalables y mantenibles. Proporciona criterios de evaluación para decidir entre los patrones de API más comunes y establece guías para aspectos clave como:

  • Selección del estilo de API (REST, GraphQL, tRPC)
  • Formatos de respuesta (JSON, XML, Protocol Buffers)
  • Estrategias de versionado (URL, headers, negociación de contenido)
  • Técnicas de paginación (cursor, offset, keyset)

Árbol de Decisión: REST vs GraphQL vs tRPC

CriterioRESTGraphQLtRPC
SimplezaAltaMediaAlta
Flexibilidad de consultasBajaAltaAlta
TipadoOpcional (OpenAPI)Fuerte (SDL)Fuerte (TypeScript)
CachéNativa (HTTP)PersonalizadaNo nativa
Over-fetchingPosibleEvitadoEvitado
EcosistemaMaduroMaduroEmergente

Cuándo usar cada uno

  • REST: Ideal para APIs públicas, CRUD simples, y cuando se necesita amplio soporte de herramientas.
  • GraphQL: Adecuado para aplicaciones con datos complejos y relaciones profundas, o cuando el cliente necesita control granular.
  • tRPC: Excelente para monolitos o microservicios en TypeScript, donde se desea tipado completo sin generación de código.

Formatos de Respuesta

  • JSON: Estándar de facto, legible, soporte universal.
  • XML: Útil en entornos legacy o integraciones con sistemas SOAP.
  • Protocol Buffers: Óptimo para alto rendimiento y bajo ancho de banda (ej. microservicios internos).

Versionado de API

  • Versión en URL: GET /api/v1/users (simple, pero rompe URLs).
  • Versión en headers: Accept: application/vnd.myapi.v1+json (más RESTful, pero menos intuitivo).
  • Negociación de contenido: Usar Accept para versionar (flexible, pero complejo).

Recomendación: Usar versionado en URL para APIs públicas, y headers para APIs internas.

Paginación

MétodoUsoVentajasDesventajas
CursorGET /items?cursor=abc123Eficiente, estableComplejo de implementar
OffsetGET /items?offset=20&limit=10SimpleInconsistente con datos cambiantes
KeysetGET /items?after_id=123Rápido, escalableRequiere orden único

Recomendación: Usar paginación por cursor para listas grandes y aplicaciones en tiempo real; offset para paneles internos.

Ejemplo de Uso con Agente

Contexto: El usuario necesita decidir qué estilo de API usar para un nuevo backend de comercio electrónico con frontend React y aplicación móvil.

Pasos:
1. Evaluar requisitos: datos de productos, carrito, usuarios.
2. Identificar relaciones: productos con múltiples categorías y variantes.
3. Usar el árbol de decisión: GraphQL es mejor por la flexibilidad de consultas y evitación de over-fetching.
4. Recomendar: GraphQL con Apollo Server en Node.js, versionado por headers, paginación por cursor con `after` y `first`.

Notas Finales

  • Este skill no reemplaza el análisis detallado del equipo; ofrece guías basadas en buenas prácticas.
  • Los patrones pueden combinarse (ej. REST para autenticación, GraphQL para datos principales).
  • Revisa siempre la documentación oficial de cada tecnología para detalles de implementación.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

sickn33/3d-web-experience

Expert in building 3D experiences for the web - Three.js, React Three Fiber, Spline, WebGL, and interactive 3D scenes. Covers product configurators, 3D portfolios, immersive websites, and bringing depth to web experiences.

sickn33/agent-memory-mcp

A hybrid memory system that provides persistent, searchable knowledge management for AI agents (Architecture, Patterns, Decisions).

sickn33/agent-memory-systems

Memory is the cornerstone of intelligent agents. Without it, every interaction starts from zero. This skill covers the architecture of agent memory: short-term (context window), long-term (vector stores), and the cognitive architectures that organize them.

sickn33/ai-agents-architect

Expert in designing and building autonomous AI agents. Masters tool use, memory systems, planning strategies, and multi-agent orchestration.

sickn33/api-documentation-generator

Generate comprehensive, developer-friendly API documentation from code, including endpoints, parameters, examples, and best practices

sickn33/api-security-best-practices

Implement secure API design patterns including authentication, authorization, input validation, rate limiting, and protection against common API vulnerabilities

sickn33/app-store-optimization

Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store

sickn33/architecture

Architectural decision-making framework. Requirements analysis, trade-off evaluation, ADR documentation. Use when making architecture decisions or analyzing system design.

sickn33/audio-transcriber

Transform audio recordings into professional Markdown documentation with intelligent summaries using LLM integration

sickn33/aws-serverless

Specialized skill for building production-ready serverless applications on AWS. Covers Lambda functions, API Gateway, DynamoDB, SQS/SNS event-driven patterns, SAM/CDK deployment, and cold start optimization.

sickn33/backend-architect

Expert backend architect specializing in scalable API design, microservices architecture, and distributed systems.

sickn33/backend-dev-guidelines

You are a senior backend engineer operating production-grade services under strict architectural and reliability constraints. Use when routes, controllers, services, repositories, express middleware, or prisma database access.

sickn33/bash-linux

Bash/Linux terminal patterns. Critical commands, piping, error handling, scripting. Use when working on macOS or Linux systems.

sickn33/bash-scripting

Bash scripting workflow for creating production-ready shell scripts with defensive patterns, error handling, and testing.

sickn33/brainstorming

Use before creative or constructive work (features, architecture, behavior). Transforms vague ideas into validated designs through disciplined reasoning and collaboration.

sickn33/browser-automation

Browser automation powers web testing, scraping, and AI agent interactions. The difference between a flaky script and a reliable system comes down to understanding selectors, waiting strategies, and anti-detection patterns.

sickn33/browser-extension-builder

Expert in building browser extensions that solve real problems - Chrome, Firefox, and cross-browser extensions. Covers extension architecture, manifest v3, content scripts, popup UIs, monetization strategies, and Chrome Web Store publishing.

sickn33/bullmq-specialist

BullMQ expert for Redis-backed job queues, background processing, and reliable async execution in Node.js/TypeScript applications.

sickn33/bun-development

Fast, modern JavaScript/TypeScript development with the Bun runtime, inspired by [oven-sh/bun](https://github.com/oven-sh/bun).

sickn33/cc-skill-security-review

This skill ensures all code follows security best practices and identifies potential vulnerabilities. Use when implementing authentication or authorization, handling user input or file uploads, or creating new API endpoints.

Skills relacionados