API – Juegos del Común

05.04.2017 · Posted in INNOVACION, Juegos del común

2017_logo_JuegosdelComun_ESP_Media

Dentro del marco del proyecto Juegos del Común, proyecto actualmente incubado en el Canòdrom de Barcelona, estamos desarrollando un servicio web con el objetivo de facilitar el acceso a los datos abiertos desde motores de juego como Contruct2, Godot, Unity, Gdevelop, GameMaker, etc.

Los datos que proporciona el portal del Ayuntamiento de Barcelona no siguen a menudo una organización orgánica y homogénea. Cada conjunto de datos está escrito por alguien diferentes y parece no haber una línea guía de cómo publicar los datos. El resultado es que para cada conjunto se tiene que trabajar de forma individual para poder eventualmente usarlo en algún tipo de creación. Con la API que estamos programando pretendemos simplificar este proceso, dando una interfaz de acceso única y congruente a estos datos y dando la posibilidad de relacionar entre ella la información representada. Al ser un proyecto piloto, de momento estamos interesados sólo en algunos datos que estamos usando como casos de estudio para verificar nuestra hipótesis de trabajo.

A continuación algunas decisiones de carácter más técnico que describen la composición y el diseño de nuestro servicio de API – Juegos del Común.

api1.png

Requisitos:

  • Debe ser un servicio web que devuelva datos bien formateados extraídos de los conjuntos de datos del portal del Ayuntamiento de Barcelona.

  • Debe devolver los datos en dos posibles formatos: JSON (predeterminado) y XML.

  • Debe utilizar una Interfaz de Programación de Aplicaciones (API) tipo REST.

  • Debe poderse utilizar dentro de editores de videojuegos como el Godot, Gdevelop, Construct2, Unity3D y GameMaker.

  • Debe contemplar un mínimo de 5 conjuntos de datos: alquiler, turismo, arqueología, festivales e indigencia.

  • Debe aceptar sólo consultas, de dos tipos: las básicas y las complejas.

  • Las básicas deben devolver los datos tal como aparecen en una tabla, ya sea todo el registro o algunas columnas, o datos sobre la mesa.

  • Las complejas deben devolver valores uniendo tablas (utilizando SQL JOIN), y serán un conjunto predefinido (no sintaxis sino funciones y argumentos).

Análisis:

El servicio está programado usando Django y MySQL.

Los conjuntos de datos del ayuntamiento se han pasado por un formateo previo corrigiendo tipos y errores comunes, dando una homogeneización a todas las entradas.

api2

Implementación:

A partir del uso del framework Rest framework para Django se utiliza el formato Json como salida estándar del servicio. De acuerdo con el diseño general se implementa una estructura de consultas complejas donde a través del “JOIN” de diferentes tablas será posible calcular datos entre diferentes conjuntos.

Ejemplos de respuestas a la consulta “juegosdelcomun.arsgames.net/ipa/capsalera/lloguer.json”:

JSON: {

“resposta_jdc”: {

“id”: 273894,

“consulta”: “juegosdelcomun.arsgames.net/ipa/capsalera/lloguer.json”, “rebut”=”2017-03-21T22:11:17”,

“capsalera”: [

{“districte”: “char(50)”},

{“barri”: “char(50)”},

{“trimestre1”: “smallint”},

{“trimestre2”: “smallint”},

{“trimestre3”: “smallint”},

{“trimestre4”: “smallint”}

    ]

  }

                 }

Recordamos que durante las jornadas del Sonar+D se presentará la API junto a algunos videojuegos desarrollados a partir del open data como parte del proyecto Juegos del Común.

Con el apoyo de:

aj_barcelona

canodrom_logoprincipal-1

Comments are closed