Restful Objects para Ruby, un framework para el desarrollo de Web Services RESTful - Vizcay, Pablo Daniel (2017)
El presente informe introduce el framework RestfulObjects para Ruby: las motivaciones para su creación, el diseño y los detalles más relevantes de la implementación del mismo. Como introducción se realiza un breve análisis del funcionamiento del protocolo HTTP y las distintas arquitecturas de Web Services resaltando las características de un servicio RESTful. También se realiza un recorrido por la evolución de distintas tecnologías que culminaron en la creación del estándar RestfulObjects, el cual implementa el framework RestfulObjects para Ruby propuesto en este trabajo. Luego, se realiza una introducción a como se interactúa con una instanciación del framework, desde distintas herramientas analizando las interacciones sobre HTTP: URLs, métodos, encabezados y cuerpos de mensaje en JSON (JavaScript Object Notation, un formato de intercambio de datos muy utilizado en Internet). Se realiza un análisis de los distintos elementos relevantes: interacción con objetos modelos del dominio, lectura y modificación de propiedades, incorporación y exclusión de objetos en colecciones, ejecución de acciones y creación de objetos entre otros. También se ejemplifica el funcionamiento del sistema de descripción de tipos del estándar. Posteriormente, se realiza un extenso análisis del diseño del framework: los componentes que lo integran, los requerimientos funcionales y no funcionales, y clases relevantes con diagramas UML y extractos de códigos necesarios para un mejor entendimiento de las mismas. Se expone porque Ruby es un lenguaje que, con sus características de meta programación, es idóneo para la implementación de esta clase de frameworks. Por último se explica la estructura de la arquitectura de testing automático con el que cuenta. Sobre el final del informe se analiza el funcionamiento de una aplicación de gestión de proyectos y tareas que instancia el framework en forma de ejemplo: su interacción con el backend, interfaz de usuario y demás por menores. Para concluir, se presenta la forma de distribución e instalación del framework mediante una gema de Ruby y una especificación técnica de la API del mismo a modo de documentación. El informe termina con las conclusiones, a las que se arribaron luego de desarrollar el trabajo y escribir este informe.