Saltar al contenido

Lección 3 de 12 · Lectura y práctica

Resolvers y fuentes de datos

Respuesta rapida: Un resolver es la funcion que responde un campo del schema. Puede leer una base de datos, llamar otro servicio, combinar datos o validar permisos antes de devolver una respuesta. Que vas a aprender Un resolver.

Del concepto a la práctica

Taller de esta lección

Un resolver conecta un campo del schema con datos y reglas, pero no debería convertirse en el lugar donde viven todas las decisiones. Separar coordinación y dominio facilita cambiar la fuente sin cambiar la respuesta.

Ejemplo resuelto

Query.course recibe id, llama a courseService.findById(id, context.user) y devuelve el curso. El servicio comprueba acceso y consulta un repositorio. En esta arquitectura, el resolver delega el SQL y las reglas reutilizables al servicio; sigue siendo responsable de aplicar el contrato de su campo.

En el ejemplo, course(id: ID!): Course es nullable: cuando no exista el registro puedes devolver null conforme al contrato. Si un usuario no tiene acceso, aplica tu política explícita y no reveles datos privados. Los resolvers también pueden proteger campos particulares; centralizar reglas en servicios evita que un acceso por otra ruta eluda esos permisos.

Pruébalo

  1. Define una entrada con id: c-17.

  2. Especifica qué usuario viaja en el contexto.

  3. Escribe el resultado para curso encontrado.

  4. Escribe el resultado para curso inexistente.

Error frecuente: devolver un objeto global sin validar al solicitante. Corrige pasando el contexto al servicio y probando un usuario permitido y otro rechazado.

Comprueba tu resultado

Dibuja la cadena resolver → servicio → repositorio. Después verifica que cambiar el repositorio no obligue a cambiar el nombre del campo GraphQL y que el caso inexistente produzca una respuesta definida.

Navegador, API y base de datos conectados por solicitudes, consultas y respuestas en sentidos opuestos.
CursaloMapa de práctica
Del navegador a los datos

El navegador envía una solicitud a la API. El servidor valida la operación y consulta los datos; después devuelve una respuesta que el navegador puede mostrar. La base de datos se comunica con el servidor y no directamente con el navegador.

Ver la infografía en tamaño completo ↗
Fuentes para profundizar
Respuesta rapida: Un resolver es la funcion que responde un campo del schema. Puede leer una base de datos, llamar otro servicio, combinar datos o validar permisos antes de devolver una respuesta.

Que vas a aprender

Un resolver es la funcion que responde un campo del schema. Puede leer una base de datos, llamar otro servicio, combinar datos o validar permisos antes de devolver una respuesta.

Paso 1: practica profesional

En Apollo Server, los resolvers deben recibir contexto de usuario, clientes de datos y trazabilidad. Asi se evita mezclar autenticacion, SQL y formato de respuesta en componentes de frontend.

Paso 2: practica profesional

Para que el proyecto sea mantenible, separa resolvers por dominio y mueve la logica pesada a servicios. El resolver coordina, pero no deberia convertirse en un archivo gigante con todas las reglas.

Paso 3: practica profesional

En produccion tambien importa el rendimiento: un resolver por campo puede disparar muchas consultas si no se agrupan lecturas con DataLoader o consultas optimizadas.

Ejercicio practico para portfolio

Elegi una API de cursos, empleos o productos digitales y documenta como resolverias este problema con GraphQL y Apollo. Inclui el schema, una query, una mutation, manejo de errores y una nota sobre cache o permisos. El objetivo no es memorizar sintaxis: es demostrar criterio tecnico para una entrevista junior, freelance o equipo de producto.

  • Entregable: captura del resultado, archivo con codigo y README breve.
  • Checklist: nombres claros, datos tipados, errores explicitos y flujo reproducible.
  • Conexion laboral: agregalo a tu portfolio y enlazalo desde LinkedIn o desde una propuesta del marketplace.

Cuando termines, continua con rutas de carreras, oportunidades de empleo digital y servicios publicados en el marketplace de Cursalo.

Sigue con GraphQL con Apollo para APIs modernas

Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.

Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.

01 / ELEGIR UNA RUTA

El próximo paso

Aprende IA mientras construyes algo que sí necesitas.

Empieza por el curso inicial o explora el catálogo para encontrar una práctica alineada con tu trabajo.