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
El objeto Book tiene 2 representaciones JSON:
{
id : '' /*Tipo Long*/ ,
name : '' /*Tipo String*/ ,
description : '' /*Tipo String*/ ,
isbn : '' /*Tipo String*/ ,
image : '' /*Tipo String*/
}
{
// todo lo de la representación Minimum más los objetos Minimum con relación simple.
editorial : {
id : '' /*Tipo Long*/ ,
name : '' /*Tipo String*/ }
}
Retorna una colección de objetos Book en representación Detail.
Cada Book en la colección tiene embebidos los siguientes objetos: Editorial.
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
Retorna una colección de objetos Book en representación Detail.
Cada Book en la colección tiene los siguientes objetos: Editorial.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Book a consultar
Sí
Integer
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
Es el encargado de crear objetos Book.
Nombre
Ubicación
Descripción
Requerido
Esquema
body
body
Objeto Book que será creado
Sí
Representación Detail
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
Es el encargado de actualizar objetos Book.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Book a actualizar
Sí
Integer
body
body
Objeto Book nuevo
Sí
Representación Detail
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
Elimina un objeto Book.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Book a eliminar
Sí
Integer
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Book a consultar
Sí
Integer
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
booksid
Path
ID del objeto Book a consultar
Sí
Integer
authorsid
Path
ID del objeto Author a consultar
Sí
Integer
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
booksid
PathParam
ID del objeto Book al cual se asociará el objeto Author
Sí
Integer
authorsid
PathParam
ID del objeto Author a asociar
Sí
Integer
PUT books/{booksid}/authors
Es el encargado de remplazar la colección de objetos Author asociada a un objeto Book.
Nombre
Ubicación
Descripción
Requerido
Esquema
booksid
Path
ID del objeto Book cuya colección será remplazada
Sí
Integer
body
body
Colección de objetos Author
Sí
Representación Detail
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
booksid
Path
ID del objeto Book asociado al objeto Author
Sí
Integer
authorsid
Path
ID del objeto Author a remover
Sí
Integer
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Book a consultar
Sí
Integer
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
booksid
Path
ID del objeto Book a consultar
Sí
Integer
reviewsid
Path
ID del objeto Review a consultar
Sí
Integer
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
booksid
PathParam
ID del objeto Book al cual se asociará el objeto Review
Sí
Integer
reviewsid
PathParam
ID del objeto Review a asociar
Sí
Integer
PUT books/{booksid}/reviews
Es el encargado de actualizar un objeto Review asociada a un objeto Book.
Nombre
Ubicación
Descripción
Requerido
Esquema
booksid
Path
ID del objeto Book cuya colección será remplazada
Sí
Integer
body
body
Colección de objetos Review
Sí
Representación Detail
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
booksid
Path
ID del objeto Book asociado al objeto Review
Sí
Integer
reviewsid
Path
ID del objeto Review a remover
Sí
Integer
Código
Descripción
Cuerpo
204
Objeto removido
N/A
500
Error interno
Mensaje de error
Volver arriba
El objeto Editorial tiene 2 representaciones JSON:
{
id : '' /*Tipo Long*/ ,
name : '' /*Tipo String*/
}
Retorna una colección de objetos Editorial en representación Detail.
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
Retorna una colección de objetos Editorial en representación Detail.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Editorial a consultar
Sí
Integer
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
Es el encargado de crear objetos Editorial.
Nombre
Ubicación
Descripción
Requerido
Esquema
body
body
Objeto Editorial que será creado
Sí
Representación Detail
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
Es el encargado de actualizar objetos Editorial.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Editorial a actualizar
Sí
Integer
body
body
Objeto Editorial nuevo
Sí
Representación Detail
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
Elimina un objeto Editorial.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Editorial a eliminar
Sí
Integer
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Editorial a consultar
Sí
Integer
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
editorialsid
Path
ID del objeto Editorial a consultar
Sí
Integer
booksid
Path
ID del objeto Book a consultar
Sí
Integer
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
editorialsid
PathParam
ID del objeto Editorial al cual se asociará el objeto Book
Sí
Integer
booksid
PathParam
ID del objeto Book a asociar
Sí
Integer
PUT editorials/{editorialsid}/books
Es el encargado de remplazar la colección de objetos Book asociada a un objeto Editorial.
Nombre
Ubicación
Descripción
Requerido
Esquema
editorialsid
Path
ID del objeto Editorial cuya colección será remplazada
Sí
Integer
body
body
Colección de objetos Book
Sí
Representación Detail
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
editorialsid
Path
ID del objeto Editorial asociado al objeto Book
Sí
Integer
booksid
Path
ID del objeto Book a remover
Sí
Integer
Código
Descripción
Cuerpo
204
Objeto removido
N/A
500
Error interno
Mensaje de error
Volver arriba
El objeto Author tiene 2 representaciones JSON:
{
id : '' /*Tipo Long*/ ,
name : '' /*Tipo String*/ ,
birthDate : '' /*Tipo Date*/
}
Retorna una colección de objetos Author en representación Detail.
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
Retorna una colección de objetos Author en representación Detail.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Author a consultar
Sí
Integer
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
Es el encargado de crear objetos Author.
Nombre
Ubicación
Descripción
Requerido
Esquema
body
body
Objeto Author que será creado
Sí
Representación Detail
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
Es el encargado de actualizar objetos Author.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Author a actualizar
Sí
Integer
body
body
Objeto Author nuevo
Sí
Representación Detail
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
Elimina un objeto Author.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Author a eliminar
Sí
Integer
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Author a consultar
Sí
Integer
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
authorsid
Path
ID del objeto Author a consultar
Sí
Integer
booksid
Path
ID del objeto Book a consultar
Sí
Integer
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
authorsid
PathParam
ID del objeto Author al cual se asociará el objeto Book
Sí
Integer
booksid
PathParam
ID del objeto Book a asociar
Sí
Integer
PUT authors/{authorsid}/books
Es el encargado de remplazar la colección de objetos Book asociada a un objeto Author.
Nombre
Ubicación
Descripción
Requerido
Esquema
authorsid
Path
ID del objeto Author cuya colección será remplazada
Sí
Integer
body
body
Colección de objetos Book
Sí
Representación Detail
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.
Nombre
Ubicación
Descripción
Requerido
Esquema
authorsid
Path
ID del objeto Author asociado al objeto Book
Sí
Integer
booksid
Path
ID del objeto Book a remover
Sí
Integer
Código
Descripción
Cuerpo
204
Objeto removido
N/A
500
Error interno
Mensaje de error
Volver arriba