query { publicaciones { contenido autor { nombre } comentarios { contenido } } } CODE_BLOCK: query { publicaciones { contenido autor { nombre } comentarios { contenido } } } CODE_BLOCK: query { publicaciones { contenido autor { nombre } comentarios { contenido } } } - ✅ Una API de GraphQL desplegada en la nube - ✅ Un endpoint que puedes compartir - ✅ Documentación generada automáticamente - ✅ Un playground para probar queries
- Tu archivo schema.graphql del artículo anterior
- Una cuenta de AWS (el free tier es suficiente)
- Un navegador web
- Control total sobre todo
- Puedes correrlo en cualquier lugar
- El software es open source y gratuito
- Tú manejas el servidor, las actualizaciones, el escalamiento
- Necesitas conocimientos de DevOps
- Más tiempo de setup
- Pagas por la infraestructura donde lo despliegues
- Sin servidores que mantener
- Escalamiento automático
- Features incluidos (real-time, caching, etc.)
- Menos control
- Dependes del proveedor
- El modelo de precios varía según el proveedor (revisa la documentación de precios de cada servicio para tu caso específico)
- Serverless
- No tienes que preocuparte por servidores
- Perfecto para aprender
- Te enfocas en GraphQL, no en infraestructura
- Real-time incluido
- Lo usaremos en un próximo artículo para subscriptions
- Hosting del esquema
- Tu esquema vive en la nube, siempre disponible
- Ejecución de queries
- Procesa las queries que llegan a tu API
- WebSockets para real-time
- Subscriptions funcionan automáticamente
- Caching
- Respuestas más rápidas sin configuración extra
- Endpoint de API
- Una URL que tus clientes pueden usar
- Tu esquema
- Defines qué datos existen y cómo se relacionan
- Tus resolvers
- La lógica que obtiene los datos (lo haremos en el artículo 4)
- Cómo retornas datos
- Usaremos mock data para aprender
- Ve a https://console.aws.amazon.com/appsync
- Si te pide iniciar sesión, usa tu cuenta de AWS
- Asegúrate de estar en la región que prefieras (yo uso us-east-1)
- Haz clic en el botón naranja "Create API"
- Verás dos opciones: GraphQL API y Events API. Selecciona "GraphQL API"
- Ahora verás una sección llamada "API type" con dos opciones: GraphQL APIs ← Selecciona esta Merged APIs
- GraphQL APIs ← Selecciona esta
- Merged APIs
- GraphQL APIs ← Selecciona esta
- Merged APIs
- Después de seleccionar "GraphQL APIs", verás opciones de templates. Selecciona "Design from scratch"
- Haz clic en "Next" - 💡 ¿Por qué GraphQL API y no Events API? Events API es para casos de uso específicos de eventos. Nosotros queremos una API de GraphQL tradicional. - 💡 ¿Por qué GraphQL APIs y no Merged APIs? Merged APIs es para combinar múltiples APIs en una sola. Como estamos empezando, queremos una API simple. - 💡 ¿Por qué "Build from scratch"? Porque ya tenemos nuestro esquema del artículo anterior. Las otras opciones son templates que AppSync ofrece, pero nosotros queremos usar el nuestro.
- API type: GraphQL APIs
- API name: Social-Media-API
- GraphQL resources: Create later
- En el menú lateral izquierdo, haz clic en "Schema"
- Verás un editor de texto grande con algunos comentarios por defecto. Aquí es donde va tu esquema.
- Abre tu archivo schema.graphql del artículo anterior
- Borra los comentarios que están por defecto en el editor de AppSync
- Copia todo el contenido del archivo
- Pégalo en el editor de AppSync
- Haz clic en el botón naranja "Save Schema" en la esquina superior derecha
- Si todo está bien, verás un mensaje de confirmación: "Schema saved successfully"
- En el menú lateral, haz clic en "Settings"
- Busca la sección "API URL" o "GraphQL endpoint"
- Verás una URL que se ve algo así: https://xxxxxxxxxx.appsync-api.us-east-1.amazonaws.com/graphql
- En el menú lateral, haz clic en "Queries"
- Verás un editor de queries (lo usaremos en un momento)
- En la esquina superior derecha del editor, busca un botón o ícono que diga "Docs" o tenga un símbolo de libro 📖
- Haz clic en "Docs" y se abrirá un panel lateral
- Todos tus tipos: Usuario, Publicacion, Comentario
- Tus queries: usuario, publicacion, publicaciones
- Tus mutations: crearUsuario, crearPublicacion, crearComentario
- Los campos de cada tipo con sus tipos de datos
- Haz clic en el tipo "Usuario"
- Verás todos sus campos: id, nombre, email, fotoPerfil, publicaciones, creadoEn
- Nota que cada campo muestra su tipo: String!, [Publicacion!]!, etc.
- No necesitas documentación separada que se desactualice
- El esquema ES la documentación
- Cualquier cambio en el esquema se refleja inmediatamente aquí
- Los desarrolladores que usen tu API pueden explorarla sin preguntarte
- Esquema desplegado
- Tu contrato de API está en la nube
- Endpoint de API
- Una URL que los clientes pueden usar
- Documentación automática
- Generada desde tu esquema
- Playground para probar
- El editor de queries está listo
- Resolvers
- La lógica que retorna datos
- Datos para consultar
- Por ahora, las queries retornarían null
- Entender qué son los resolvers
- El puente entre tu esquema y tus datos
- Implementar resolvers con TypeScript
- Código con type safety
- Usar mock data
- Datos de prueba para ver resultados inmediatos
- Probar queries reales
- Ver tu API funcionando de verdad
- Implementar mutations
- Crear usuarios, publicaciones y comentarios
- Explora la documentación
- Familiarízate con el panel de Docs
- Revisa tu esquema
- Asegúrate de que tiene todo lo que necesitas
- Guarda tu API endpoint
- Lo necesitarás después - ✅ Entendiste las opciones para correr GraphQL APIs - ✅ Conociste AWS AppSync y qué hace por ti - ✅ Creaste tu primera API en AppSync - ✅ Desplegaste tu esquema - ✅ Exploraste la documentación auto-generada
- Parte 1: Introducción a GraphQL
- Entendimos qué es y por qué usarlo
- Parte 2: Diseño del esquema
- Creamos nuestro contrato de API
- Parte 3: Deployment (este artículo)
- Desplegamos el esquema en AppSync
- Próximo: Implementación de resolvers
- Haremos que la API funcione
- Un esquema validado
- Documentación automática
- Un endpoint público (protegido por ahora)
- Todo listo para agregar resolvers
- Parte 1: GraphQL
- Una introducción
- Parte 2: Diseñando tu primer esquema
- AWS AppSync Documentation
- GraphQL Introspection