Diseño API REST requerimientos - Uniandes-ISIS2603-backup/201620-g5 GitHub Wiki
###Implementación de los Servicios REST para los requerimientos R1, R14 y R15 de la aplicación Biblioteca del grupo de trabajo “G5”
Implementado por Santiago Múnera Dávila - [email protected]
A continuación se presenta el api respectivo para los requerimientos funcionales R1, R14 y R15:
R1: Crear una sala para una biblioteca
Método | Path | Acción | Parámetros | Cuerpo | Retorno |
---|---|---|---|---|---|
POST | /bibliotecas/salas | Crear una nueva instancia de la entidad Sala(CREATE) | @PathParam idBiblioteca:Identificador del registro de biblioteca | Atributos de la instancia de Sala a crear | Instancia de Sala creada, incluyendo su nuevo ID. Objeto JSON de Sala. |
La clase SalaResource tendrá entonces el siguiente método que cumple el requerimiento:
Anotación | Método | Descripción |
---|---|---|
@POST | SalaDTO createSala(SalaDTO sala, int idBiblioteca) | Crea una sala con la información suministrada por parámetro. A la sala creada se le asocia una biblioteca respectiva que se identifica por su id. |
R14: Regresar un libro
Método | Path | Acción | Parámetros | Cuerpo | Retorno |
---|---|---|---|---|---|
PUT | /prestamos/:id/usuarios/:idUsuario/fecha | Actualiza una instancia de la entidad City (UPDATE) que tiene identificado idUsuario, idPrestamo y fecha | **@PathParam idUsuario:**Identificador del registro de usuario. **@PathParam id:**Identificador del registro de prestamo. @PathParam fechaEntrega: fecha en formato "dd-MMM-yyyy" Ej: "30-Dic-2000". | Objeto JSON de Prestamo | Atributos de la instancia de Prestamo. Objeto JSON de Prestamo |
La clase PrestamoResource tendrá entonces el siguiente método que cumple el requerimiento R14:
Anotación | Método | Descripción |
---|---|---|
@PUT | PrestamoDTO regresarLibro(long id, PrestamoDTO m, long idUsuario) | Actualiza la información de prestamo identificado con idUsuario, id y se compara con fechaEntrega. El prestamo cambia su atributo de estaActivo a false para terminar el prestamo (así se regresa el libro) y retorna el prestamo finalizado. Adicionalmente, si el parámetro fechaEntrega se compara con el atributo fechaFinal de Prestamo y fechaEntrega es después de fechaFinal, se crea una multa(ver RF15) asociada al idUsuario del que realizó la devolución del libro. |
R15: Crear una multa para un usuario
Método | Path | Acción | Parámetros | Cuerpo | Retorno |
---|---|---|---|---|---|
POST | /usuarios/multas | Crear una nueva instancia de la entidad Multa(CREATE) | @PathParam idUsuario:Identificador del registro de usuario | Atributos de la instancia de Multa a crear | Instancia de Multa creada, incluyendo su nuevo ID. Objeto JSON de Multa. |
La clase MultaResource tendrá entonces el siguiente método que cumple el requerimiento R15:
Anotación | Método | Descripción |
---|---|---|
@POST | MultaDTO createMulta(MultaDTO multa, int idUsuario) | Crea una multa con la información suministrada por parámetro. A la multa creada se le asocia un usuario respectivo que se identifica por id. |
###Requerimientos 11,12 y 13 Santiago Rojas Herrera - [email protected]
Requ. | Método | Path | Acción | Parámetros | Cuerpo | Retorno |
---|---|---|---|---|---|---|
[R11](R11_Ver reservas activas de un libro particular) | GET | /libros/:idLibro/reservas | Retorna las reservas del libro con tal id (read) | @PathParam idLibro:Identificador del libro | Objetos JSON de todas las reservas del libro. | |
[R12](R12_Ver prestamos activos de un libro particular) | GET | /libros/:idLibro/prestamos | Retorna los prestamos activos del libro con tal id(read) | @PathParam idLibro: Identificador del libro | Objetos JSON de todas los prestamos activos del libro. | |
[R13](R13_Ver disponibilidad sala dada una fecha) | GET | salas/:idSala/:fecha | Retorna las salas disponibles con los parametros definidos en el cuerpo(read) | @PathParam idSala: id de la sala que se desea consultar @PathParam fecha: fecha en milisegundos | JSON con la sala si esta disponible, vacio de lo contrario. |
Requ. | Clase | Anotación | Método | Descripción |
---|---|---|---|---|
[R11](R11_Ver reservas activas de un libro particular) | ReservaResource | @GET | List<ReservaDTO> getReservasLibro(Long id) | Devuelve una lista de las reservas activas del libro |
[R12](R12_Ver prestamos activos de un libro particular) | PrestamoResource | @GET | List<PrestamoDTO> getPrestamosLibro(Long id) | Devuelve una lista de los prestamos activos del libro |
[R13](R13_Ver disponibilidad sala dada una fecha) | SalaResource | @GET | SalaDTO getDisponibilidadSala(Long id, Long fecha) | Devuelve la sala si esta disponible en la fecha dada por parametro |
###Implementación de los Servicios REST para el recurso “Blogs” de la aplicación Biblioteca del grupo de trabajo “G5”
BLOG
Implementado por Juan Sebastian Prieto - [email protected]
Método | Path | Acción | Parámetros | Cuerpo | Retorno |
---|---|---|---|---|---|
GET | libros/:idLibro/blogs | Despliega una lista de los blogs en la base de datos(READ) | Colección de registros de blogs | ||
GET | libros/:idLibro/blogs/:id | Obtiene los atributos de una instancia de blogs(READ) que tiene identificacion id | @PathParam id:Identificador del registro | Atributos de la instancia del blog | |
POST | libros/:idLibro/blogs | Crea una nueva instancia del recurso blogs(CREATE) | Atributos de la instancia de blogs a crear | Instancia de blogs creada | |
PUT | libros/:idLibro/blogs/:id | Actualiza una instancia de la entidad blogs(UPDATE) | @PathParam id:Identificador del registro | Objeto Json de blogs | Instancia de blogs actualizada |
Métodos clase BlogResource:
Método | Descripción |
---|---|
List<blogDTO> getblogs() | Retorna la lista de blogs |
BlogDTO createBlog() | Crea un blog nuevo con la información suministrada por parámetro. Retorna el nuevo blog. |
BlogDTO getBlog(int id) | Retorna el blog identificado con id |
BlogDTO updateBlog(int id, BlogDTO blog) | Cambia los atributos del blog con id |
###Requerimientos 8,9 y 10 Carlos González - [email protected]
Requ. | Método | Path | Acción | Parámetros | Cuerpo | Retorno |
---|---|---|---|---|---|---|
[R8](R8_Prestar una sala) | POST | /bibliotecas/:idBiblioteca/prestamos/idPrestamo | Crea un nuevo préstamo de una sala (create) | @PathParam " " * | Objetos JSON del préstamo de sala creado. | |
[R9](R9_Prestar un libro) | POST | /bibliotecas/:idBiblioteca/prestamos/idPrestamo | Crea un nuevo préstamo de un libro(create) | @PathParam " " * | Objetos JSON del préstamo de libro creado. | |
[R10](R10_Prestar un video) | POST | /bibliotecas/:idBiblioteca/prestamos/idPrestamo | Crea un nuevo préstamo de una video(create) | @PathParam " " * | Objetos JSON del préstamo de video creado. |
*Se deja vacío para manejar la ruta /bibliotecas/ al principio del path (no poner body ayuda a la flexibilidad si se quiere customizar mucho los paths, se necesita que el path empiece por biblioteca y por usuarios por lo que no se pone body).
Métodos clase prestamoResource: La clase prestamoResource va a tener un solo método que crea el préstamo, y dependiendo del tipo de recurso que sea el préstamo se llama a la clase correspondiente.
Requ. | Anotación | Método | Descripción |
---|---|---|---|
[R8](R8_Prestar una sala en particular) | @POST | PrestamoDTO createPrestamoBiblioteca(Long idBiblioteca) | Crea el prestamo nuevo, asociando la sala al usuario. Devuelve el préstamo nuevo |
[R9](R9_Prestar un libro en particular) | @POST | PrestamoDTO createPrestamoBiblioteca(Long idBiblioteca) | Crea el prestamo nuevo, asociando el libro al usuario. Devuelve el préstamo nuevo |
[R10](R10_Prestar un video en particular) | @POST | PrestamoDTO createPrestamoBiblioteca(Long idBiblioteca) | Crea el prestamo nuevo, asociando el video al usuario. Devuelve el préstamo nuevo. |
Requirimientos 2, 3 y 4
** David Patiño [email protected]
Requ. | Método | Path | Acción | Parámetros | Cuerpo | Retorno |
---|---|---|---|---|---|---|
[R2](R2_Reservar una sala) | POST | /bibliotecas/:idBiblioteca/reservas | Crea una nueva reserva de una sala (create) | @PathParam " " * | Objetos JSON del préstamo de sala creado. | |
[R3](R4_Reservar un libro) | POST | /bibliotecas/:idBiblioteca/reservas | Crea un nueva reserva de un libro(create) | @PathParam " " * | Objetos JSON del préstamo de libro creado. | |
[R4](R4_Reservar un video) | POST | /bibliotecas/:idBiblioteca/reservas | Crea un nueva reserva de un video(create) | @PathParam " " * | Objetos JSON del préstamo de video creado. |