Este apartado está en desarrollo continuo.
Se actualizará una vez esté terminada la plataforma para que las APIs definitivas, estando actualizado de ese modo a la última versión.
El documento presentado en la reunión del es el siguiente:
- Se indica en la reunión que falta el flujo de información desde el LMS al POA tanto para la modificación de cursos existentes como la de usuarios externos registrados.
- La Universidad de Granada potencialmente podría ser usuaria de pruebas para la integración de Moodle. La UPM podría ser la siguiente candidata.
POST /users/create
Este endpoint se utiliza para crear nuevos usuarios en el sistema.
{ "first_name": "Juan", "last_name": "Perez", "email": "juanperez@um.es", "nif": "12345678A", "curriculum": "curriculum" }
Parámetros de la solicitud:
first_name
(string, requerido): El nombre del usuario.last_name
(string, requerido): El apellido del usuario.email
(string, requerido): La dirección de correo electrónico del usuario.nif
(string, requerido): El NIF o NIE del usuario.curriculum
(string, opcional): El curriculum del usuario en texto plano.
POST /courses/course_registered
Confirmación de curso registrado y envío de la URL que le ha asignado el LMS. Se llama a este endpoint una vez que el LMS ha recibido una comunicación de Apache Kafka procedente del POA.
{ "course_poa_uid": "UID DEL CURSO EN EL POA", "course_lms_uid": "UID DEL CURSO EN EL LMS", "url_lms": "https://lms.com/courses/course_lms_uid" }
Parámetros de la solicitud:
course_poa_uid
(string, requerido): El UID que le asignó el POA al curso. Vendrá en el mensaje de Kafka.course_lms_uid
(string, requerido): El identificador que le ha asignado el LMS al curso. Puede ser en cualquier formato.- (string, requerido): La URL que le ha asignado el LMS al curso. Debe tener un formato de URL correcto.
GET /courses/{course_lms_uid}
Obtención de información de un curso.
{ "uid": "UID DEL CURSO EN EL POA", "uid_lms": "UID DEL CURSO EN EL LMS", "status": "PENDING_APPROVAL", "title": "Curso de bellasartes", "image_path": "https://poa.com/courses/course_bellasartes.jpg", "center": "Universidad de Murcia", "ects_workload": 6, "lms_url": "https://lms.com/courses/course_uid_lms", "inscription_start_date": "2023-05-31 06:00:00", "inscription_finish_date": "2023-06-30 06:00:00", "realization_start_date": "2023-05-31 06:00:00", "realization_finish_date": "2023-06-30 06:00:00", "tags": [ "arte", "pintura" ], "teachers": [ "teacher1@um.es", "teacher2@um.es" ], "students": [ { "email": "student1@um.es", "approved": true }, { "email": "student2@um.es", "approved": false } ] }
Parámetros de la solicitud:
uid
(string): El identificador único del curso en el Plan de Estudios Académico (POA).uid_lms
(string): El identificador único del curso en el Sistema de Gestión del Aprendizaje (LMS, por sus siglas en inglés).status
(string): El estado del curso. Más información: Estados de un cursoINSCRIPTION. En inscripción.
ACCEPTED_PUBLICATION. Aceptado para publicación.
- PENDING_INSCRIPTION. Pendiente de inscripción.
PENDING_PUBLICATION. Pendiente de publicación.
- FINISHED. Finalizado
- DEVELOPMENT. En desarrollo.
- INTRODUCTION. En introducción.
- RETIRED. Retirado.
UNDER_CORRECTION_APPROVAL. En subsanación para aprobación.
UNDER_CORRECTION_PUBLICATION. En subsanación para publicación.
PENDING_APPROVAL.
Pendiente de aprobación.APPROVED.
Aprobado.REJECTED.
Rechazado.
title
(string): El título del curso.image_path
(string): La URL de la imagen asociada al curso.center
(string): El centro educativo al que pertenece el curso.ects_workload
(integer): La carga de trabajo del curso en créditos ECTS.lms_url
(string): La URL del curso en el LMS.inscription_start_date
(string): La fecha y hora de inicio del período de inscripción al curso en formato "YYYY-MM-DD HH:mm:ss".inscription_finish_date
(string): La fecha y hora de finalización del período de inscripción al curso en formato "YYYY-MM-DD HH:mm:ss".realization_start_date
(string): La fecha y hora de inicio de la realización del curso en formato "YYYY-MM-DD HH:mm:ss".realization_finish_date
(string): La fecha y hora de finalización de la realización del curso en formato "YYYY-MM-DD HH:mm:ss".tags
(array de strings): Las etiquetas asociadas al curso para clasificarlo.teachers
(array de strings): La lista de correos electrónicos de los profesores que imparten el curso.students
(array de objetos): La lista de estudiantes inscritos en el curso, cada uno representado como un objeto con las siguientes propiedades:email
(string): El correo electrónico del estudiante.approved
(boolean): Indica si la inscripción del estudiante ha sido aprobada o no.
PUT /courses/update/{course_lms_uid}
Actualización de un curso
{ "title": "Curso de bellasartes", "image_path": "https://poa.com/courses/course_bellasartes.jpg", "center": "Universidad de Murcia", "ects_workload": 6, "lms_url": "https://lms.com/courses/course_uid_lms", "inscription_start_date": "2023-05-31 06:00:00", "inscription_finish_date": "2023-06-30 06:00:00", "realization_start_date": "2023-05-31 06:00:00", "realization_finish_date": "2023-06-30 06:00:00", "tags": [ "arte", "pintura" ] }
Parámetros de la solicitud:
title
(string): El título del curso.image_path
(string): La URL de la imagen asociada al curso.center
(string): El centro educativo al que pertenece el curso.ects_workload
(integer): La carga de trabajo del curso en créditos ECTS (European Credit Transfer and Accumulation System).lms_url
(string): La URL del curso en el Sistema de Gestión del Aprendizaje (LMS, por sus siglas en inglés).inscription_start_date
(string): La fecha y hora de inicio del período de inscripción al curso en formato "YYYY-MM-DD HH:mm:ss".inscription_finish_date
(string): La fecha y hora de finalización del período de inscripción al curso en formato "YYYY-MM-DD HH:mm:ss".realization_start_date
(string): La fecha y hora de inicio de la realización del curso en formato "YYYY-MM-DD HH:mm:ss".realization_finish_date
(string): La fecha y hora de finalización de la realización del curso en formato "YYYY-MM-DD HH:mm:ss".tags
(array de strings): Las etiquetas asociadas al curso para clasificarlo.
PUT /users/update/{email_user}
Actualización de un usuario mediante su email. Sólo es necesario enviar las propiedades que cambian.
{ "new_email": "newemail@poa.com", "first_name": "user", "last_name": "poa", "nif": "123456789X", "curriculum": "curriculum" }
Parámetros de la solicitud:
new_email (string, requerido): Nuevo email.
first_name
(string, requerido): El nombre del usuario.last_name
(string, requerido): El apellido del usuario.email
(string, requerido): La dirección de correo electrónico del usuario.nif
(string, requerido): El NIF o NIE del usuario.curriculum
(string, opcional): El curriculum del usuario en texto plano.
Posibles respuestas de la API
Respuestas:
- 200 OK: La solicitud se completó correctamente y se creó el usuario.
- 400 Bad Request: Se encontraron errores en los datos proporcionados. Se devuelve un mensaje detallando los errores.
- 401 Unauthorized: No se proporcionaron credenciales de autenticación válidas.
- 500 Internal Server Error: Se produjo un error interno en el servidor.