Skip to content

Trabajo práctico de programación orientada a objetos avanzada

Notifications You must be signed in to change notification settings

Luisfc68/tp-poa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TP integrador programación con objetos avanzada

Descripcion

Este trabajo consiste en una API Rest para un sistema de canje de puntos a cambio de productos, las tecnologías que utiliza son Spring boot, Hibernate para el acceso a los datos y Jwt para la autenticación, está hecha para conectarse a una base de datos (en este caso MySQL) con el siguiente modelo:

Diagrama entidad relacion

Endpoints

Los endpoints con los que cuenta el trabajo son los siguienes, todos están protegidos y solo se puede acceder después de autenticarse excepto los que estan en negrita:

Entidad usuario

  • /usuario/login (post): endpoint para que el usuario se autentique, recibe un objeto que tenga los atributos "nombre" y "contrasena". Devuelve un token para poner en el encabezado "Authorization" de las siguientes peticiones.
  • /usuario (get): endpoint para ver la información del usuario que realizó la petición.
  • /usuario/{id} (get): endpoint para ver la información de un usuario específico.
  • /usuario/signup (post): endpoint para que el usuario se registre y pueda autenticarse posteriormente. Espera un objeto que tenga como atributos los campos "nombre", "contrasena" y "correo". Devuelve el objeto del usuario creado.

Entidad canje

  • /canje/{id} (get): endpoint para que el usuario autenticado visualice uno de sus canjes. Cabe recalcar que el si el usuario intenta ver un canje de otro usuario que no es él, no será permitido.

  • /canje (get): endpoint que le devuelve al usuario autenticado una lista de sus canjes, dicha lista está paginada, se le puede indicar el offset por un parametro en la url. Por ejemplo: ?offset=5. Si no se le indica un offset el valor por defecto es 0.

  • /canje (post): endpoint para que el usuario intente realizar un canje. Este endpoint espera un vector de objetos que representarían los items del canje, donde cada objeto debe tener los atributos "producto" el cual es el id del producto que se quiere canjear y "cantidad" que es la cantidad de dicho producto a canjear. El endpoint devuelve el objeto del canje en el caso que se haya realizado con éxito.

Entidad producto

  • /productos/{id} (get): endpoint para que el usuario pueda ver un producto en específico.

  • /productos (get): endpoint para que un usuario pueda ver todos los productos. Como devuelve un vector de productos, está paginado, por lo que se le puede indicar el offset en la url al igual que en el endpoint de canjes. En este caso el offset por defecto también es 0.

Diagrama de clases

El diagrama de clases lo puse en google drive porque es muy ancho como para ponerlo aquí.

About

Trabajo práctico de programación orientada a objetos avanzada

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages