Open diegoroyo opened 5 years ago
Por lo que entiendo en este párrafo:
El problema es que, al menos en la aplicación móvil, no se realizan este tipo de peticiones. La información de los productos se obtiene a partir de un listado,
GET /products
por ejemplo. De esta forma, la información del producto se obtiene 2 veces.
El grupo de móvil usáis la información que ya habíais mostrado en el listado de los productos, en lugar de volver a realizar la petición GET
. No sé si realmente eso ahorra tiempo de procesamiento de las peticiones o no. ¿Habéis probado ambas alternativas?
Desconozco cómo funciona el refresco de productos (F5
) en vuestra aplicación de móvil, pero supongo que (aunque sea de cara a las subastas) tendréis alguna forma de refrescar la información de producto sin pasar de nuevo por el listado de productos, ¿me equivoco?.
Personalmente, veo más adecuada la opción 1.
1 . Incrementar al pedir la información de un producto: Al realizar la petición
GET /products/{product_id}, incrementar el contador.
Yo tambien veo mas adecuada la opcion 1.
Actualmente en la aplicación móvil, si no me equivoco, la información de los productos solamente se obtiene del listado de productos y no se realiza ninguna petición a /products/{product_id}
.
Es cierto que habrá que añadir nueva funcionalidad para actualizar la información de un producto, en especial para las subastas. Para los "productos" (no subastas) no vi ninguna razón para actualizar su información, así que no se hace.
Entonces, si un usuario está viendo una subasta y actualiza su información 3 veces, ¿cuenta como 3 visitas? Me parece bien tanto si cuenta como 3 visitas separadas como si cuenta como 1 visita, pero creo que es un aspecto importante.
Yo creo que una visita por actualizacion.
Yo creo que una visita por actualizacion.
Tal como dice @victorpowah, lo mejor sería que cada vez que reciban una petición de GET /products/{product_id}
incrementen en uno (+1) el número de visitas. Nos da igual que el contador crezca muy rápido, y es la forma más sencilla.
Si estamos todos de acuerdo podéis implementar también el endpoint HEAD /products/{product_id}
que incremente el contador de visitas sin devolver la información. Aunque esto sólo lo utilizará la aplicación de móvil. Nota: el manejo de errores (404, 500...) de HEAD ha de ser el mismo que el de GET.
Abro este issue para discusión sobre la implementación del número de visitas (en concreto, cómo incrementar el número de visitas para un producto)
Posibles implementaciones
Habíamos pensado dos formas:
Incrementar al pedir la información de un producto: Al realizar la petición
GET /products/{product_id}
, incrementar el contador.El problema es que, al menos en la aplicación móvil, no se realizan este tipo de peticiones. La información de los productos se obtiene a partir de un listado,
GET /products
por ejemplo. De esta forma, la información del producto se obtiene 2 veces.Para aligerar, esta segunda petición puede ser
HEAD /products/{products_id}
, de forma que solo se comprueba si existeproducts_id
y no se devuelve nada en el cuerpo.Operación separada: Cuando el usuario visualiza un producto, se envía una petición a
/products/{product_id}/add-views
, por ejemplo.Cualquier opinión o mejora de las opciones actuales es bienvenida