Open JoseJPR opened 4 years ago
Me parece perfect. Yo añadiría quizás estas 2 librerías también:
Los servicios externos me parecen bien para la finalidad actual de la web.
Para la parte del versionado/escalado propongo GraphQL y evitar ese /v1 /v2 y crear endpoints nuevos para devolver diferentes modelos de datos.
Web: https://graphql.org/
@chempogonzalez Creo que te refieres a jscpd en vez de "jscp", ¿estoy en lo correcto?
He realizado unos test de "fastify-blipp" y funciona de forma "correcta" cuando generamos un router con fastify pero tengo dudas si con "fastify-gql" lo haga. Creo que es algo que podemos dejar para más adelante :)
Vale perfecto! Cierto, al tirar por GraphQL pierdee bastante su función ya que es más útil para las REST APIs. :)
Si, me refería a esa librería que menciones, fallo técnico jajaja
Done! agregado a la descripción general de la issue para tenerlo en cuenta para desarrollo, thanks por los tips @chempogonzalez :)
En esta issue se definirá el tipo de solución que se aplicará al proyecto Rest API a desarrollar.
La finalidad de este proyecto es la de hacer las veces de integrador/proxy entre el proyecto Frontend y los Servicios Externos.
Seguridad
Ya que trabajaremos con frameworks y librerías OpenSource externas y con la idea de crear un proyecto sostenible y con un alto nivel de seguridad, propongo realizar el proyecto en base a micro-dependencias. Este ecosistema se consigue realizando un análisis de las necesidades del proyecto definiendo qué se desarrollará internamente por el equipo y qué será importado desde el ecosistema externo OpenSource. En este último caso propongo trabajar con las librerías expuestas en el siguiente punto dado su situación actual, pasada y prevista de futuro.
TODO: Revisar la posibilidad de agregar Snyk como Herramienta Cloud de análisis de dependencias.
Framework Base y Librerías
Posibles Servicios Externos
Arquitectura de Software
Como Arquitectura de Software propongo una Rest API compuesta según las siguientes bases de diseño:
Información adicional para trabajar con versionados y no deprecaciones con GraphQL: https://medium.com/swlh/no-graphql-doesnt-magically-fix-api-versioning-sorry-10ba203f491f
Persistencia de Datos