API REST de Programas Académicos

Diseño estratégico e implementación de una solución basada en estándares abiertos para la gestión sincronizada de programas académicos.

En instituciones de educación superior la constante realización de actividades académicas de extensión, programas de educación continua y postgrados es parte fundamental de su misión.

Desde breves seminarios a complejos magísteres y doctorados, el conjunto de toda la oferta académica en una universidad es vasta y está sujeta a constantes modificaciones, por lo cual es crucial contar con un catálogo de referencia para publicitar su quehacer.

En una organización descentralizada, donde las facultades lideran la iniciativa de creación de diplomados y otros programas, no es suficiente contar con un listado “oficial”, sino que se hace también necesario automatizar y sincronizar la edición de sus datos, de modo de contar siempre con información vigente.

Frente a este desafío, la creación de un servicio web de consulta y sincronización de programas académicos entre los sitios de facultades y el portal corporativo de la Universidad del Desarrollo nos permitió crear un registro centralizado y siempre actualizado de todas sus posibilidades, que se convirtió en una herramienta poderosa y flexible que permite optimizar el trabajo editorial e impulsar diversas iniciativas que aprovechan su información.

Explorando una solución

El problema de contar con información actualizada ya contaba con algunos intentos de solución, que hasta el momento siempre se habían abordado de modo parcelado, puesto que no existían definiciones comunes en torno a la información relevante para toda la oferta académica.

Por otra parte, al abordar requerimientos aparentemente sin relación entre sí, no existía una base técnica estandarizada sino múltiples métodos ad-hoc, que no permitían su reutilización.

Decidimos apostar por una API madura y apegada a los principios REST, basada en estándares abiertos, que permitiera documentar sus datos y nos habilitara para abarcar de forma integral el problema, de manera eficiente y con una visión evolutiva.

Richardson Maturity Model (Martin Fowler)

Teniendo estas premisas como base, pudimos precisar que nos sería más útil definir como recurso de la API un tipo genérico de “programa académico” en el cual el “tipo de programa” es únicamente una propiedad distintiva de cada uno.

La siguiente tarea consistió en identificar los datos relevantes para todos los tipos de programas, definir si eran requeridos (u opcionales) de llenar y la forma específica que debían tener —por ejemplo: una fecha, un campo de texto simple o texto enriquecido, una opción dentro de un grupo de alternativas, entre otros.

Con estas definiciones claras, continuamos con la implementación de los métodos de lectura y escritura de la API.

Cómo lo hicimos

Utilizar la infraestructura de API REST JSON de WordPress nos permitió facilitar varias tareas de implementación:

  1. El registro de las distintas rutas y los verbos asociados para generar los endpoints correspondientes a cada verbo HTTP, junto con un sistema básico (pero extensible) de autenticación y autorización.
  2. Registro de parámetros de entrada y salida, e integración con JSON Schema para documentar y aplicar validaciones a los datos.
  3. Hiperenlaces para facilitar el descubrimiento, presentar relaciones semánticas e incrustar otros documentos que complementan la información de la API (WordPress implementa parcialmente el estándar Hypertext Application Language).

El uso de estándares que promueve el diseño de la API permite generar documentación técnica continuamente actualizada utilizando herramientas de código abierto, lo que facilita la comunicación con otros equipos que hacen o quieran hacer uso del servicio.

Para qué lo usamos

Uno de los resultados más valiosos y positivos ha sido la posibilidad de utilizar la API para resolver múltiples desafíos, los que a la vez nutren su desarrollo y guían su evolución, entre los cuales destacamos los siguientes:

01 Buscador de programas “Lifelong learning”

El buscador de programas de “Lifelong learning” permite explorar y buscar en la oferta académica según tipos de programas (doctorados, magíster, diplomados…) y áreas de estudio, en el cual se presentan los atributos más significativos de cada programa, el enlace de acceso a su respectivo sitio y formularios que permiten enviar una consulta al coordinador o coordinadora que corresponda.

La implementación consiste en una aplicación javascript desarrollada con vue.js que permite la búsqueda instantánea en todos los programas.

02 Sincronización de datos

Mantenemos distintos plugins de WordPress que permiten la gestión de los programas académicos a través de diversos proyectos, utilizándolos como dependencias de Composer.

Utilizamos los endpoints de escritura y eliminación de la API para reflejar las ediciones que las unidades hacen a los programas, de modo que la información esté continuamente actualizada.

Los mismos endpoints son utilizados también por otros equipos para alimentar con su propia información el catálogo central de programas.

03 Bloques

Cuando WordPress comenzó su transformación más radical a través del desarrollo del editor de bloques (“Gutenberg“), decidimos apostar tempranamente por concretar esa visión de futuro que permite un nivel incomparable de flexibilidad. De este modo, el desarrollo de una colección propia de bloques se convirtió en parte central de nuestra propuesta estratégica.

La API de programas académicos nos permitió integrar fácilmente la información en múltiples sitios, asegurando siempre que los datos estén actualizados respecto a la oferta vigente.

04 Landings

La API de programas académicos fue un elemento fundamental para facilitar la presentación y venta de programas para las personas interesadas en complementar su formación profesional, mediante la generación de múltiples páginas orientadas a generar conversión y contactabilidad.

Ya sea para presentar información sobre programas particulares o bien múltiples programas relacionados temáticamente, la posibilidad de contar con información siempre actualizada desde una “fuente única de verdad” simplifica enormemente la tarea de disponibilizar la oferta académica.

Gracias a los distintos atributos asociados a cada programa, además, es posible generar listados automáticos sobre la base de filtros como: facultades, sedes, modalidades, tipo de programa, entre otros, lo que permite presentar la información mediante relaciones flexibles entre programas, que pueden estar basadas en afinidad temática, lugar donde se dicta, área de estudio o cualquier otro criterio disponible en sus atributos.

¿Tienes dudas?

Contáctanos

hola@bloom.lat