Saltar al contenido

Lección 25 de 25 · Lectura y práctica

Quiz Final: Evaluación del Proyecto Integrador

Prepara la evaluación final de tu API Go con un caso de contrato HTTP, pruebas de autorización y una revisión del proyecto integrador.

Del concepto a la práctica

Taller de esta lección

La revisión final sigue un pedido completo de la librería y contrasta su resultado con la reserva de stock. El contrato debe explicar fallos y repeticiones además del caso válido; una captura del pedido no demuestra que la reserva se conserve correctamente.

Ejemplo resuelto

Datos iniciales: producto7 a 1250 céntimos EUR, stock5; usuario u1 autorizado, sin pedidos ni reservas. Envía cantidad2, clave aula-u1-001 y correlación req-42. El precio viene del catálogo y el total es 2500 céntimos. Tras la confirmación queda un pedido y stock3. Repetir el mismo payload y clave devuelve el pedido previo sin otra reserva.

CasoResultado del contrato
Sin credencial válida401; ningún pedido ni reserva
Cantidad cero400; ningún pedido ni reserva
Pedido válido de dos unidades201; total2500, stock3
Misma clave y payloadrespuesta del pedido previo; stock3
Misma clave y cantidad distinta409; sin nueva mutación
Dependencia no disponibleerror controlado; estado pendiente o sin reserva documentado

Pruébalo

  1. Usa datos de laboratorio nuevos y registra stock/pedidos antes de cada caso.

  2. Ejecuta los cinco primeros casos con la política declarada.

  3. Simula un timeout y consulta el estado por la misma clave antes de reintentar.

  4. Comprueba correlación, contadores por endpoint y persistencia tras reiniciar el laboratorio.

Error frecuente: creer que abortar la conexión revierte una mutación remota. La petición puede haber llegado; idempotencia y recuperación deben manejar esa incertidumbre sin crear un segundo pedido.

Comprueba tu resultado

El caso válido y su repetición conservan un único pedido y una única reserva de2. Una solicitud inválida no altera esos datos. Explica cómo productos evita una reserva superior al stock con pedidos concurrentes y qué evidencia distingue un fallo de proceso de un estado de negocio pendiente.

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

Tipo de lección: Quiz

Evaluacion del modulo

Responde estas preguntas para comprobar que puedes aplicar los criterios principales del modulo.

Preparación del proyecto integrador

La evaluación del módulo sigue siendo la evaluación existente. Esta lectura añade una preparación con respuestas abiertas y criterios de revisión; no sustituye preguntas, puntajes ni condiciones de aprobación. Trabaja en una copia de tu proyecto y conserva su contrato HTTP.

Caso ficticio: una API de tareas

Una tarea tiene identificador, título, estado y propietario. Propón qué debe ocurrir al consultar una tarea que no existe, crear una tarea con título vacío o leer una tarea de otro usuario. Define primero respuesta y estado HTTP; luego revisa si el handler implementa ese contrato.

SituaciónQué debes justificar
GET de una tarea existente y autorizadaRespuesta JSON y campos públicos
ID inexistenteTratamiento coherente de un recurso ausente
JSON inválido o título vacíoValidación y mensaje sin detalles internos
Tarea de otro propietarioAutorización por recurso, no solo sesión
Fallo del almacenamientoRespuesta controlada y registro sin datos privados

Evidencia que preparar

  1. Escribe una tabla del contrato para las rutas principales.
  2. Separa la validación de entrada, el caso de uso y el acceso a datos cuando esa separación haga el proyecto más legible.
  3. Añade una prueba de handler con httptest para un caso válido y otro rechazado.
  4. Ejecuta go test ./... y registra el resultado real, incluida cualquier prueba fallida.
  5. Documenta cómo iniciar el proyecto y qué configuración de ejemplo necesita; no incluyas secretos.

Preguntas abiertas de repaso

  • ¿Por qué un usuario autenticado todavía puede carecer de permiso sobre una tarea?
  • ¿Qué prueba demuestra que un JSON inválido no llega a guardarse?
  • ¿Cómo detectas una diferencia entre el status prometido y el recibido?
  • ¿Qué cambia en tu contrato si el borrado debe ser idempotente?
  • ¿Qué limitación del proyecto explicarías antes de usarlo fuera de un entorno de práctica?

Criterios para tu autoevaluación

Revisa claridad del contrato, cobertura de los dos casos propuestos, manejo de errores y reproducibilidad. Señala dónde falta evidencia en lugar de marcarlo como aprobado. Guarda tus respuestas junto con el resultado del test. La autoevaluación prepara la evaluación existente y no añade una certificación ni un puntaje automático.

Referencias para comprobar la implementación

Documentación consultada el 2 de octubre de 2026. Comprueba también las versiones y condiciones de tu proyecto.

Sigue con APIs REST en Go: Concurrencia, Despliegue y Monitoreo

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.