Habilidades graphql
📦

graphql

Seguro

Construir APIs GraphQL Seguras con Mejores Prácticas

La flexibilidad de GraphQL puede llevar a problemas de rendimiento y seguridad sin controles adecuados. Esta habilidad proporciona patrones probados para el uso de DataLoader, limitación de profundidad de consultas y autorización para construir APIs GraphQL listas para producción.

Soporta: Claude Codex Code(CC)
🥉 74 Bronce
1

Descargar el ZIP de la skill

2

Subir en Claude

Ve a Configuración → Capacidades → Skills → Subir skill

3

Activa y empieza a usar

Pruébalo

Usando "graphql". Diseñar un esquema para un catálogo de productos de comercio electrónico

Resultado esperado:

  • Esquema GraphQL con tipos Product, Category y Review
  • Nulabilidad adecuada para campos opcionales como discountPrice
  • Conexiones para paginación en reseñas de productos
  • Mutaciones para operaciones CRUD con tipos de entrada

Usando "graphql". Corregir consultas N+1 en resolutor de publicaciones de usuario

Resultado esperado:

  • Implementación de DataLoader agrupando búsquedas de ID de usuario
  • Caché indexado por ID de usuario para prevenir consultas duplicadas
  • Integración con el contexto de Apollo Server
  • Mejora de rendimiento de N consultas a 1 consulta agrupada

Auditoría de seguridad

Seguro
v1 • 2/25/2026

This skill is a documentation file containing GraphQL best practices and patterns. Static analysis flagged false positives: line 69 references related skills (not shell execution), and lines 3, 22, 34, 63, 72 contain markdown content (not cryptographic code). No executable code or security risks detected.

1
Archivos escaneados
73
Líneas analizadas
0
hallazgos
1
Auditorías totales
No se encontraron problemas de seguridad
Auditado por: claude

Puntuación de calidad

38
Arquitectura
100
Mantenibilidad
87
Contenido
50
Comunidad
100
Seguridad
91
Cumplimiento de la especificación

Lo que puedes crear

Desarrollador Backend Construyendo Nueva API

Diseñar e implementar una API GraphQL lista para producción con optimizaciones de rendimiento adecuadas y controles de seguridad desde el inicio.

Equipo Frontend Integrando GraphQL

Configurar Apollo Client con caché normalizado y patrones de obtención de datos eficientes para aplicaciones React.

Tech Lead Auditando API Existente

Identificar y corregir anti-patrones comunes de GraphQL como DataLoader faltante, profundidad de consultas ilimitada y brechas de autorización.

Prueba estos prompts

Diseñar un Esquema GraphQL Básico
Crear un esquema GraphQL para un blog con tipos User, Post y Comment. Incluir nulabilidad adecuada, relaciones y operaciones CRUD comunes como consultas y mutaciones.
Implementar DataLoader para Prevenir N+1
Tengo un resolutor GraphQL que obtiene autores para publicaciones. Cada resolutor de publicación hace una consulta separada a la base de datos. Muéstrame cómo implementar DataLoader para agrupar y cachéar estas consultas.
Agregar Limitación de Profundidad de Consultas
Configurar limitación de profundidad de consultas y análisis de complejidad para mi Apollo Server para prevenir ataques DoS desde consultas GraphQL profundamente anidadas. Incluir configuración y manejo de errores.
Implementar Autorización a Nivel de Campo
Muéstrame cómo implementar autorización a nivel de campo en resolutores GraphQL. Algunos campos solo deberían ser visibles para usuarios autenticados o usuarios con roles específicos.

Mejores prácticas

  • Siempre usar DataLoader para agrupar consultas de base de datos y prevenir problemas N+1
  • Limitar la profundidad y complejidad de consultas para protegerse contra ataques DoS
  • Implementar autorización en resolutores, no solo en directivas de esquema

Evitar

  • Hacer llamadas a base de datos directamente en resolutores sin DataLoader
  • Permitir profundidad de consultas ilimitada en tu endpoint GraphQL
  • Depender únicamente de directivas de esquema para la lógica de autorización

Preguntas frecuentes

¿Por qué es necesario DataLoader para GraphQL?
Sin DataLoader, cada resolutor de campo hace consultas independientes a la base de datos. Una sola consulta que obtiene 10 publicaciones con sus autores dispara 11 consultas (1 para publicaciones, 10 para autores). DataLoader las agrupa en 2 consultas, mejorando dramáticamente el rendimiento.
¿Debería habilitarse la introspección en producción?
Generalmente no. La introspección expone toda la estructura de tu esquema a los clientes. Aunque es útil para herramientas de desarrollo, puede ayudar a los atacantes a entender tu API. Desactívala en producción a menos que necesites específicamente soporte de herramientas de cliente.
¿Cuál es la diferencia entre autorización de esquema y resolutor?
Las directivas de esquema declaran quién puede acceder a qué a nivel de tipo/campo. La autorización en resolutores implementa la lógica real. Siempre implementa autorización en resolutores; las directivas solas pueden ser evitadas o configuradas incorrectamente.
¿Cómo manejo errores versus datos nulos en GraphQL?
Usa nulabilidad adecuada en tu esquema. Si un campo puede legítimamente estar vacío, hazlo anulable. Si debe tener un valor, hazlo no anulable. Cuando un campo no anulable falla, GraphQL anula todo el objeto padre, lo cual puede romper consultas.
¿Qué límite de profundidad de consultas debería usar?
Comienza con un límite de profundidad de 5-10 para la mayoría de las APIs. Monitorea tus consultas legítimas y ajústalo en consecuencia. También implementa análisis de complejidad de consultas para detectar consultas costosas pero superficiales que evitan los límites de profundidad.
¿Necesito limpiar suscripciones GraphQL?
Sí. Las suscripciones mantienen conexiones abiertas. Cuando los clientes se desconectan, asegúrate de que los manejadores de suscripciones del lado del servidor se limpien correctamente para prevenir fugas de memoria. Implementa limpieza en tus resolutores de suscripciones usando ganchos de ciclo de vida adecuados.

Detalles del desarrollador

Estructura de archivos

📄 SKILL.md