Skip to content

Proyecto final ​

El proyecto final consiste en disenar y construir una API REST profesional para una plataforma de cursos.

Recursos principales ​

  • Users.
  • Courses.
  • Lessons.
  • Enrollments.
  • Payments.
  • Certificates.

Endpoints minimos ​

txt
GET    /courses
POST   /courses
GET    /courses/{courseId}
PATCH  /courses/{courseId}
POST   /courses/{courseId}/publish

POST   /enrollments
GET    /users/{userId}/enrollments

POST   /payments
GET    /payments/{paymentId}

POST   /certificates/{certificateId}/issue

Requisitos ​

  • Paginacion en listas.
  • Filtros por estado, autor y categoria.
  • Errores estructurados.
  • Autenticacion.
  • Autorizacion por rol.
  • OpenAPI completo.
  • Rate limiting en endpoints sensibles.
  • Correlation id en errores.
  • Tests de contrato.

Ejemplo de error ​

json
{
  "type": "business_error",
  "code": "course_not_published",
  "message": "The course must be published before enrollment.",
  "traceId": "req_123"
}

Entregable ​

El resultado debe incluir:

  • Documento OpenAPI.
  • Guia de estilos aplicada.
  • Coleccion de pruebas.
  • Tabla de permisos por endpoint.
  • Checklist de compatibilidad.

Criterio de calidad ​

La API debe poder ser consumida por un frontend sin preguntar al backend que significa cada respuesta. Eso es una buena senal de contrato claro.