imdiegoruiz / book

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tabla de contenidos

API Rest

Introducción

La comunicación entre cliente y servidor se realiza intercambiando objetos JSON. Para cada entidad se hace un mapeo a JSON, donde cada uno de sus atributos se transforma en una propiedad de un objeto JSON. Todos los servicios se generan en la URL /book.api/api/. Por defecto, todas las entidades tienen un atributo id, con el cual se identifica cada registro:

{
    id: '',
    attribute_1: '',
    attribute_2: '',
    ...
    attribute_n: ''
}

Cuando se transmite información sobre un registro específico, se realiza enviando un objeto con la estructura mencionada en la sección anterior. La única excepción se presenta al solicitar al servidor una lista de los registros en la base de datos, que incluye información adicional para manejar paginación de lado del servidor en el header X-Total-Count y los registros se envían en el cuerpo del mensaje como un arreglo.

La respuesta del servidor al solicitar una colección presenta el siguiente formato:

[{}, {}, {}, {}, {}, {}]

API de la aplicación book

Recurso Book

El objeto Book tiene 2 representaciones JSON:

Representación Minimum

{
    id: '' /*Tipo Long*/,
    name: '' /*Tipo String*/,
    description: '' /*Tipo String*/,
    isbn: '' /*Tipo String*/,
    image: '' /*Tipo String*/
}

Representación Detail

{
    // todo lo de la representación Minimum más los objetos Minimum con relación simple.
    editorial: {
    id: '' /*Tipo Long*/,
    name: '' /*Tipo String*/    }
}

GET /books

Retorna una colección de objetos Book en representación Detail. Cada Book en la colección tiene embebidos los siguientes objetos: Editorial.

Parámetros

N/A

Respuesta

Código Descripción Cuerpo
200 OK Colección de representaciones Detail
409 Un objeto relacionado no existe Mensaje de error
500 Error interno Mensaje de error

GET /books/{id}

Retorna una colección de objetos Book en representación Detail. Cada Book en la colección tiene los siguientes objetos: Editorial.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
id Path ID del objeto Book a consultar Integer

Respuesta

Código Descripción Cuerpo
200 OK Objeto Book en representaciones Detail
404 No existe un objeto Book con el ID solicitado Mensaje de error
500 Error interno Mensaje de error

POST /books

Es el encargado de crear objetos Book.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
body body Objeto Book que será creado Representación Detail

Respuesta

Código Descripción Cuerpo
201 El objeto Book ha sido creado Representación Detail
409 Un objeto relacionado no existe Mensaje de error
500 No se pudo crear el objeto Book Mensaje de error

PUT /books/{id}

Es el encargado de actualizar objetos Book.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
id Path ID del objeto Book a actualizar Integer
body body Objeto Book nuevo Representación Detail

Respuesta

Código Descripción Cuerpo
201 El objeto Book actualizado Representación Detail
409 Un objeto relacionado no existe Mensaje de error
500 No se pudo actualizar el objeto Book Mensaje de error

DELETE /books/{id}

Elimina un objeto Book.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
id Path ID del objeto Book a eliminar Integer

Respuesta

Código Descripción Cuerpo
204 Objeto eliminado N/A
500 Error interno Mensaje de error

GET books/{booksid}/authors

Retorna una colección de objetos Author asociados a un objeto Book en representación Detail.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
id Path ID del objeto Book a consultar Integer

Respuesta

Código Descripción Cuerpo
200 OK Colección de objetos Author en representación Detail
500 Error consultando authors Mensaje de error

GET books/{booksid}/authors/{authorsid}

Retorna un objeto Author asociados a un objeto Book en representación Detail.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
booksid Path ID del objeto Book a consultar Integer
authorsid Path ID del objeto Author a consultar Integer

Respuesta

Código Descripción Cuerpo
200 OK Objeto Author en representación Detail
404 No existe un objeto Author con el ID solicitado asociado al objeto Book indicado Mensaje de error
500 Error interno Mensaje de error

POST books/{booksid}/authors/{authorsid}

Asocia un objeto Author a un objeto Book.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
booksid PathParam ID del objeto Book al cual se asociará el objeto Author Integer
authorsid PathParam ID del objeto Author a asociar Integer

Respuesta

Código Descripción Cuerpo
200 Objeto Author asociado Representación Detail de Author
500 No se pudo asociar el objeto Author Mensaje de error

PUT books/{booksid}/authors

Es el encargado de remplazar la colección de objetos Author asociada a un objeto Book.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
booksid Path ID del objeto Book cuya colección será remplazada Integer
body body Colección de objetos Author Representación Detail

Respuesta

Código Descripción Cuerpo
200 Se remplazó la colección Colección de objetos Author en Representación Detail
500 No se pudo remplazar la colección Mensaje de error

DELETE books/{booksid}/authors/{authorsid}

Remueve un objeto Author de la colección en un objeto Book.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
booksid Path ID del objeto Book asociado al objeto Author Integer
authorsid Path ID del objeto Author a remover Integer

Respuesta

Código Descripción Cuerpo
204 Objeto removido N/A
500 Error interno Mensaje de error

GET books/{booksid}/reviews

Retorna una colección de objetos Review asociados a un objeto Book en representación Detail.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
id Path ID del objeto Book a consultar Integer

Respuesta

Código Descripción Cuerpo
200 OK Colección de objetos Review en representación Detail
500 Error consultando reviews Mensaje de error

GET books/{booksid}/reviews/{reviewsid}

Retorna un objeto Review asociados a un objeto Book en representación Detail.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
booksid Path ID del objeto Book a consultar Integer
reviewsid Path ID del objeto Review a consultar Integer

Respuesta

Código Descripción Cuerpo
200 OK Objeto Review en representación Detail
404 No existe un objeto Review con el ID solicitado asociado al objeto Book indicado Mensaje de error
500 Error interno Mensaje de error

POST books/{booksid}/reviews/{reviewsid}

Asocia un objeto Review a un objeto Book.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
booksid PathParam ID del objeto Book al cual se asociará el objeto Review Integer
reviewsid PathParam ID del objeto Review a asociar Integer

Respuesta

Código Descripción Cuerpo
200 Objeto Review asociado Representación Detail de Review
500 No se pudo asociar el objeto Review Mensaje de error

PUT books/{booksid}/reviews

Es el encargado de actualizar un objeto Review asociada a un objeto Book.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
booksid Path ID del objeto Book cuya colección será remplazada Integer
body body Colección de objetos Review Representación Detail

Respuesta

Código Descripción Cuerpo
200 Se actualizo el objeto Objeto Review en Representación Detail
500 No se pudo actualizar Mensaje de error

DELETE books/{booksid}/reviews/{reviewsid}

Remueve un objeto Review asociado a un objeto Book.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
booksid Path ID del objeto Book asociado al objeto Review Integer
reviewsid Path ID del objeto Review a remover Integer

Respuesta

Código Descripción Cuerpo
204 Objeto removido N/A
500 Error interno Mensaje de error

Volver arriba

Recurso Editorial

El objeto Editorial tiene 2 representaciones JSON:

Representación Minimum

{
    id: '' /*Tipo Long*/,
    name: '' /*Tipo String*/
}

GET /editorials

Retorna una colección de objetos Editorial en representación Detail.

Parámetros

N/A

Respuesta

Código Descripción Cuerpo
200 OK Colección de representaciones Detail
409 Un objeto relacionado no existe Mensaje de error
500 Error interno Mensaje de error

GET /editorials/{id}

Retorna una colección de objetos Editorial en representación Detail.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
id Path ID del objeto Editorial a consultar Integer

Respuesta

Código Descripción Cuerpo
200 OK Objeto Editorial en representaciones Detail
404 No existe un objeto Editorial con el ID solicitado Mensaje de error
500 Error interno Mensaje de error

POST /editorials

Es el encargado de crear objetos Editorial.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
body body Objeto Editorial que será creado Representación Detail

Respuesta

Código Descripción Cuerpo
201 El objeto Editorial ha sido creado Representación Detail
409 Un objeto relacionado no existe Mensaje de error
500 No se pudo crear el objeto Editorial Mensaje de error

PUT /editorials/{id}

Es el encargado de actualizar objetos Editorial.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
id Path ID del objeto Editorial a actualizar Integer
body body Objeto Editorial nuevo Representación Detail

Respuesta

Código Descripción Cuerpo
201 El objeto Editorial actualizado Representación Detail
409 Un objeto relacionado no existe Mensaje de error
500 No se pudo actualizar el objeto Editorial Mensaje de error

DELETE /editorials/{id}

Elimina un objeto Editorial.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
id Path ID del objeto Editorial a eliminar Integer

Respuesta

Código Descripción Cuerpo
204 Objeto eliminado N/A
500 Error interno Mensaje de error

GET editorials/{editorialsid}/books

Retorna una colección de objetos Book asociados a un objeto Editorial en representación Detail.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
id Path ID del objeto Editorial a consultar Integer

Respuesta

Código Descripción Cuerpo
200 OK Colección de objetos Book en representación Detail
500 Error consultando books Mensaje de error

GET editorials/{editorialsid}/books/{booksid}

Retorna un objeto Book asociados a un objeto Editorial en representación Detail.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
editorialsid Path ID del objeto Editorial a consultar Integer
booksid Path ID del objeto Book a consultar Integer

Respuesta

Código Descripción Cuerpo
200 OK Objeto Book en representación Detail
404 No existe un objeto Book con el ID solicitado asociado al objeto Editorial indicado Mensaje de error
500 Error interno Mensaje de error

POST editorials/{editorialsid}/books/{booksid}

Asocia un objeto Book a un objeto Editorial.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
editorialsid PathParam ID del objeto Editorial al cual se asociará el objeto Book Integer
booksid PathParam ID del objeto Book a asociar Integer

Respuesta

Código Descripción Cuerpo
200 Objeto Book asociado Representación Detail de Book
500 No se pudo asociar el objeto Book Mensaje de error

PUT editorials/{editorialsid}/books

Es el encargado de remplazar la colección de objetos Book asociada a un objeto Editorial.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
editorialsid Path ID del objeto Editorial cuya colección será remplazada Integer
body body Colección de objetos Book Representación Detail

Respuesta

Código Descripción Cuerpo
200 Se remplazó la colección Colección de objetos Book en Representación Detail
500 No se pudo remplazar la colección Mensaje de error

DELETE editorials/{editorialsid}/books/{booksid}

Remueve un objeto Book de la colección en un objeto Editorial.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
editorialsid Path ID del objeto Editorial asociado al objeto Book Integer
booksid Path ID del objeto Book a remover Integer

Respuesta

Código Descripción Cuerpo
204 Objeto removido N/A
500 Error interno Mensaje de error

Volver arriba

Recurso Author

El objeto Author tiene 2 representaciones JSON:

Representación Minimum

{
    id: '' /*Tipo Long*/,
    name: '' /*Tipo String*/,
    birthDate: '' /*Tipo Date*/
}

GET /authors

Retorna una colección de objetos Author en representación Detail.

Parámetros

N/A

Respuesta

Código Descripción Cuerpo
200 OK Colección de representaciones Detail
409 Un objeto relacionado no existe Mensaje de error
500 Error interno Mensaje de error

GET /authors/{id}

Retorna una colección de objetos Author en representación Detail.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
id Path ID del objeto Author a consultar Integer

Respuesta

Código Descripción Cuerpo
200 OK Objeto Author en representaciones Detail
404 No existe un objeto Author con el ID solicitado Mensaje de error
500 Error interno Mensaje de error

POST /authors

Es el encargado de crear objetos Author.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
body body Objeto Author que será creado Representación Detail

Respuesta

Código Descripción Cuerpo
201 El objeto Author ha sido creado Representación Detail
409 Un objeto relacionado no existe Mensaje de error
500 No se pudo crear el objeto Author Mensaje de error

PUT /authors/{id}

Es el encargado de actualizar objetos Author.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
id Path ID del objeto Author a actualizar Integer
body body Objeto Author nuevo Representación Detail

Respuesta

Código Descripción Cuerpo
201 El objeto Author actualizado Representación Detail
409 Un objeto relacionado no existe Mensaje de error
500 No se pudo actualizar el objeto Author Mensaje de error

DELETE /authors/{id}

Elimina un objeto Author.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
id Path ID del objeto Author a eliminar Integer

Respuesta

Código Descripción Cuerpo
204 Objeto eliminado N/A
500 Error interno Mensaje de error

GET authors/{authorsid}/books

Retorna una colección de objetos Book asociados a un objeto Author en representación Detail.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
id Path ID del objeto Author a consultar Integer

Respuesta

Código Descripción Cuerpo
200 OK Colección de objetos Book en representación Detail
500 Error consultando books Mensaje de error

GET authors/{authorsid}/books/{booksid}

Retorna un objeto Book asociados a un objeto Author en representación Detail.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
authorsid Path ID del objeto Author a consultar Integer
booksid Path ID del objeto Book a consultar Integer

Respuesta

Código Descripción Cuerpo
200 OK Objeto Book en representación Detail
404 No existe un objeto Book con el ID solicitado asociado al objeto Author indicado Mensaje de error
500 Error interno Mensaje de error

POST authors/{authorsid}/books/{booksid}

Asocia un objeto Book a un objeto Author.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
authorsid PathParam ID del objeto Author al cual se asociará el objeto Book Integer
booksid PathParam ID del objeto Book a asociar Integer

Respuesta

Código Descripción Cuerpo
200 Objeto Book asociado Representación Detail de Book
500 No se pudo asociar el objeto Book Mensaje de error

PUT authors/{authorsid}/books

Es el encargado de remplazar la colección de objetos Book asociada a un objeto Author.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
authorsid Path ID del objeto Author cuya colección será remplazada Integer
body body Colección de objetos Book Representación Detail

Respuesta

Código Descripción Cuerpo
200 Se remplazó la colección Colección de objetos Book en Representación Detail
500 No se pudo remplazar la colección Mensaje de error

DELETE authors/{authorsid}/books/{booksid}

Remueve un objeto Book de la colección en un objeto Author.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
authorsid Path ID del objeto Author asociado al objeto Book Integer
booksid Path ID del objeto Book a remover Integer

Respuesta

Código Descripción Cuerpo
204 Objeto removido N/A
500 Error interno Mensaje de error

Volver arriba

About

License:MIT License


Languages

Language:Java 63.2%Language:JavaScript 22.4%Language:HTML 14.4%