naxocaballero / uma-clovr-pos

2 stars 0 forks source link

[Global] Definición y Documentación de la API de Conexión entre Frontend y Backend #24

Open naxocaballero opened 4 months ago

naxocaballero commented 4 months ago

Objetivo

Definir y documentar la API que servirá de puente entre el frontend y el backend de nuestro proyecto. Esta documentación debe incluir los endpoints necesarios, los datos de solicitud y los datos de respuesta, utilizando el formato JSON.

Tareas

  1. Reunión de planificación: Coordinar una reunión inicial para discutir los requisitos y expectativas de la API.
  2. Definición de endpoints: Identificar y acordar todos los endpoints necesarios para la comunicación entre el frontend y el backend.
  3. Estructura de datos:
    • Definir los datos de solicitud necesarios para cada endpoint.
    • Definir los datos de respuesta esperados para cada endpoint.
  4. Documentación:
    • Crear un archivo openapi.yaml (o swagger.yaml) con la especificación detallada de la API.
    • Asegurarse de que la documentación sea clara y comprensible para todos los miembros del equipo.
    • Utilizar herramientas como Swagger Editor para validar y visualizar la documentación.
  5. Revisión y consenso: Revisar la documentación entre todos los miembros del equipo y llegar a un consenso final.
  6. Implementación: Integrar la documentación en el repositorio del proyecto y asegurarse de que esté accesible para futuras referencias.

Herramientas sugeridas

Posibles puntos a tratar:

  1. Autenticación entre el cliente web [Frontend] y el [Backend]. ¿Qué tipo de autenticación usamos para asegurar la conexión? (Validación por IP, PSK, Clave pública, ¿sin validación?)
  2. Establecemos que el intercambio de datos tanto en las peticiones como en las respuestas será siempre JSON. No hay ningún dato distinto que debamos contemplar, ¿verdad?
  3. ¿Qué llamadas deberá poder realizar el [Frontend] al [Backend] y viceversa?
    • Enviar una solicitud de creación de factura.
    • Enviar una solicitud de listado de transacciones.
    • Recibir un evento (Webhook) cuando una factura ha sido pagada.
    • Recibir un evento (Webhook) cuando una devolución se ha confirmado.
    • ...
naxocaballero commented 3 months ago

En la última reunión, y por simplicidad y cumplimiento de plazos, hemos hablado @AnaGilO y @naxocaballero sobre el uso de polling para conocer el estado de las transacciones, cobros y pagos. Si hay tiempo, se puede implementar una solución reactiva con websocket o webhooks. Queda en el aire.