Closed mbdaso closed 5 years ago
El problema de usar url_for() es que habría que pasarle algo de la capa de infraestructura (app) a un servicio de la capa de aplicación (ConfigService), entonces habría una dependencia y se perdería la estructura.
Opino que es mejor hacerlo al revés, usar lo de ConfigService para poner las rutas en todos lados.
No. A ver.
Esto configura la ruta en el WebService:
self.app.router.add_get('/badges/{badge_id}/{requested_data}', self.badge_handler, name='badges')
Y esto va en el utils/openbadge.py para obtener la URL:
app.route['badges'].url_for(badges_id=id, requested_data=<loquesea>)
En lugar de: self.config['BADGES_JSON_URL'].format(award.badge.id_str),
Así las URL se general tal y como el router las intercepta y despacha. Claro algunos programas permite cambiar la URL base. Por ejempo, tener en Config:
API_URI:'/api'
Y usar esa variable para configurar WebService para que escuche en /api.
Es más raro permitir configurar que /api/badges no sea /api/badges sino otra cosa y /api/awards tamién otra cosa. badges y award son los nombre de las entidades. No tiene sentido para una API poder cambiar eso. Pero la raíz de la ruta sí.
Originally posted by @aplatanado in https://github.com/aplatanado/slack-badges-bot/pull/14#issuecomment-522710878
El problema de usar url_for() es que habría que pasarle algo de la capa de infraestructura (app) a un servicio de la capa de aplicación (ConfigService), entonces habría una dependencia y se perdería la estructura.
Opino que es mejor hacerlo al revés, usar lo de ConfigService para poner las rutas en todos lados.