Gamesdb - Gema Ruby para la API de TheGamesDB
Publicado el Lunes, 2 de septiembre de 2019El sábado pasado pensaba irme de aventuras por algún castillo de Escocia. Pero me desperté con un dolor de garganta tremendo que se transformó en resfrío y no me dejó salir todo el fin de semana. Qué mejor que ponerme a programar y actualizar una de mis gemas Ruby...
TheGamesDB es una base de datos online de videojuegos. El sitio sirve como servicio frontend que se enlaza a una base de datos de metadata de videojuegos y arte de alta calidad. La base de datos puede ser usada en varias aplicaciones a través de su API (PC's como centro multimedia, emuladores, etc.). Se pueden buscar juegos, plataformas, arte, y más.
En 2014 empecé un proyecto personal en el que quería usar datos de TheGamesDB. En ese entonces existía una gema para interactuar con la API, pero ya no se actualizaba hacía casi 2 años en el momento. Tampoco me gustaba cómo manejaba la respuesta de la API, así que decidí implementar una gema de cero: gamesdb. Recientemente, la API migró a un diseño completamente nuevo. La API anterior había pasado a modo legacy. El año pasado ya la había actualizado a los nuevos endpoints pero tenía pendiente migrar a la versión actual. Finalmente la API legacy se descontinuó, así que no me quedó opción que actualizar el código sino la gema era completamente inútil.
Una de las cosas buenas de la API actualizada es que la respuesta viene en formato JSON en vez de XML. Así que entre otras cosas, la gema tiene una dependencia menos (además de ser más fácil de parsear la información que recupera). También decidí publicar la versión 1.0, esa versión que tanto me cuesta etiquetar porque no considero nada "lo suficientemente estable". Pero al haber cambiado la API, todo lo escrito en las versiones anteriores ya no funcionaba, así que qué más da. De todas formas la seguiré actualizando. Todavía hay varios endpoints por implementar, en principio sólo implementé los que necesitaba para mi proyecto. Pero eventualmente voy a escribir todos los casos que provee la API.
Como siempre, es interesante volver a código que escribí hace años, y ver cómo escribiría un montón de cosas distintas hoy. Y seguro las escribiría de otra forma dentro de uno o dos años.
El fin de semana me concentré en reimplementar las cosas para que funcionen con la actualización, corregir los tests y que los builds pasen. Pero me anoté varias cosas para hacer refactoring a futuro.
Espero algún día terminar el proyecto que me hizo escribir esta gema, y si es así, ¡lo compartiré por acá también!
El código fuente de la gema: https://github.com/picandocodigo/gamesdb
Un comentario en este post
Feed de comentarios[…] semana actualicé mi gema Ruby gamesdb a la versión 2.1.0. Incluye cambios de mantenimiento, como asegurar compatibilidad con las […]
Dejar un comentario