Práctica 502. API GraphQL con Express.
Desarrolla una API GraphQL que gestione usuarios y sus pedidos utilizando Express. Cada usuario puede tener uno o varios pedidos, y cada pedido debe estar asociado a un usuario concreto.
Realiza los siguientes pasos:
-
Crea un proyecto de Node.js con Express e instala las dependencias necesarias para GraphQL (
express-graphqlo@apollo/serversegún prefieras). -
Define un esquema GraphQL con los siguientes tipos:
Usuario→ Incluyeid,nombrey una lista depedidos.Pedido→ Incluyeid,descripcion,precioy el usuario asociado.
-
Implementa los siguientes queries:
usuarios→ Devuelve la lista de todos los usuarios, incluyendo sus pedidos.usuario(id: Int!)→ Devuelve un usuario concreto por ID, incluyendo sus pedidos.pedidos→ Devuelve la lista de todos los pedidos.pedido(id: Int!)→ Devuelve un pedido concreto por ID, incluyendo información del usuario asociado.
-
Implementa las siguientes mutations:
crearUsuario(nombre: String!)→ Crea un nuevo usuario.actualizarUsuario(id: Int!, nombre: String!)→ Actualiza los datos de un usuario existente.eliminarUsuario(id: Int!)→ Elimina un usuario y todos sus pedidos asociados.crearPedido(usuarioId: Int!, descripcion: String!, precio: Float!)→ Crea un nuevo pedido asociado a un usuario existente.actualizarPedido(id: Int!, descripcion: String, precio: Float)→ Actualiza un pedido existente.eliminarPedido(id: Int!)→ Elimina un pedido concreto.
-
Prueba la API utilizando una interfaz de pruebas de GraphQL (por ejemplo GraphiQL o Apollo Studio), verificando que todas las queries y mutations funcionan correctamente y que la relación usuarios ↔ pedidos se mantiene coherente.
-
Implementa validaciones básicas, asegurándote de que no se puedan crear pedidos para usuarios inexistentes y que los datos enviados cumplan con los tipos definidos en el esquema.