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 /PetStore.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 PetStore
El objeto Animal tiene 2 representaciones JSON:
{
id : '' /*Tipo Long*/ ,
name : '' /*Tipo String*/ ,
birthDate : '' /*Tipo Date*/ ,
color : '' /*Tipo String*/ ,
gender : '' /*Tipo String*/
}
{
// todo lo de la representación Minimum más los objetos Minimum con relación simple.
breed : {
id : '' /*Tipo Long*/ ,
name : '' /*Tipo String*/ ,
description : '' /*Tipo String*/ ,
mood : '' /*Tipo String*/ ,
size : '' /*Tipo String*/ ,
lifeExpectancy : '' /*Tipo Integer*/ } ,
father : {
id : '' /*Tipo Long*/ ,
name : '' /*Tipo String*/ ,
birthDate : '' /*Tipo Date*/ ,
color : '' /*Tipo String*/ ,
gender : '' /*Tipo String*/ } ,
mother : {
id : '' /*Tipo Long*/ ,
name : '' /*Tipo String*/ ,
birthDate : '' /*Tipo Date*/ ,
color : '' /*Tipo String*/ ,
gender : '' /*Tipo String*/ }
}
Retorna una colección de objetos Animal en representación Detail.
Cada Animal en la colección tiene embebidos los siguientes objetos: Breed, Animal, Animal.
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 Animal en representación Detail.
Cada Animal en la colección tiene los siguientes objetos: Breed, Animal, Animal.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Animal a consultar
Sí
Integer
Código
Descripción
Cuerpo
200
OK
Objeto Animal en representaciones Detail
404
No existe un objeto Animal con el ID solicitado
Mensaje de error
500
Error interno
Mensaje de error
Es el encargado de crear objetos Animal.
Nombre
Ubicación
Descripción
Requerido
Esquema
body
body
Objeto Animal que será creado
Sí
Representación Detail
Código
Descripción
Cuerpo
201
El objeto Animal ha sido creado
Representación Detail
409
Un objeto relacionado no existe
Mensaje de error
500
No se pudo crear el objeto Animal
Mensaje de error
Es el encargado de actualizar objetos Animal.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Animal a actualizar
Sí
Integer
body
body
Objeto Animal nuevo
Sí
Representación Detail
Código
Descripción
Cuerpo
201
El objeto Animal actualizado
Representación Detail
412
business exception, no se cumple con las reglas de negocio
Mensaje de error
500
No se pudo actualizar el objeto Animal
Mensaje de error
Elimina un objeto Animal.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Animal a eliminar
Sí
Integer
Código
Descripción
Cuerpo
204
Objeto eliminado
N/A
500
Error interno
Mensaje de error
GET animals/{animalsid}/photoAlbum
Retorna una colección de objetos PhotoAlbum asociados a un objeto Animal en representación Detail.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Animal a consultar
Sí
Integer
Código
Descripción
Cuerpo
200
OK
Colección de objetos PhotoAlbum en representación Detail
500
Error consultando photoAlbum
Mensaje de error
GET animals/{animalsid}/photoAlbum/{photoAlbumid}
Retorna un objeto PhotoAlbum asociados a un objeto Animal en representación Detail.
Nombre
Ubicación
Descripción
Requerido
Esquema
animalsid
Path
ID del objeto Animal a consultar
Sí
Integer
photoAlbumid
Path
ID del objeto PhotoAlbum a consultar
Sí
Integer
Código
Descripción
Cuerpo
200
OK
Objeto PhotoAlbum en representación Detail
404
No existe un objeto PhotoAlbum con el ID solicitado asociado al objeto Animal indicado
Mensaje de error
500
Error interno
Mensaje de error
POST animals/{animalsid}/photoAlbum/{photoAlbumid}
Asocia un objeto PhotoAlbum a un objeto Animal.
Nombre
Ubicación
Descripción
Requerido
Esquema
animalsid
PathParam
ID del objeto Animal al cual se asociará el objeto PhotoAlbum
Sí
Integer
photoAlbumid
PathParam
ID del objeto PhotoAlbum a asociar
Sí
Integer
PUT animals/{animalsid}/photoAlbum
Es el encargado de actualizar un objeto PhotoAlbum asociada a un objeto Animal.
Nombre
Ubicación
Descripción
Requerido
Esquema
animalsid
Path
ID del objeto Animal cuya colección será remplazada
Sí
Integer
body
body
Colección de objetos PhotoAlbum
Sí
Representación Detail
Código
Descripción
Cuerpo
200
Se actualizo el objeto
Objeto PhotoAlbum en Representación Detail
500
No se pudo actualizar
Mensaje de error
DELETE animals/{animalsid}/photoAlbum/{photoAlbumid}
Remueve un objeto PhotoAlbum asociado a un objeto Animal.
Nombre
Ubicación
Descripción
Requerido
Esquema
animalsid
Path
ID del objeto Animal asociado al objeto PhotoAlbum
Sí
Integer
photoAlbumid
Path
ID del objeto PhotoAlbum a remover
Sí
Integer
Código
Descripción
Cuerpo
204
Objeto removido
N/A
500
Error interno
Mensaje de error
Volver arriba
El objeto Specie tiene 2 representaciones JSON:
{
id : '' /*Tipo Long*/ ,
name : '' /*Tipo String*/
}
Retorna una colección de objetos Specie 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 Specie en representación Detail.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Specie a consultar
Sí
Integer
Código
Descripción
Cuerpo
200
OK
Objeto Specie en representaciones Detail
404
No existe un objeto Specie con el ID solicitado
Mensaje de error
500
Error interno
Mensaje de error
Es el encargado de crear objetos Specie.
Nombre
Ubicación
Descripción
Requerido
Esquema
body
body
Objeto Specie que será creado
Sí
Representación Detail
Código
Descripción
Cuerpo
201
El objeto Specie ha sido creado
Representación Detail
409
Un objeto relacionado no existe
Mensaje de error
500
No se pudo crear el objeto Specie
Mensaje de error
Es el encargado de actualizar objetos Specie.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Specie a actualizar
Sí
Integer
body
body
Objeto Specie nuevo
Sí
Representación Detail
Código
Descripción
Cuerpo
201
El objeto Specie actualizado
Representación Detail
412
business exception, no se cumple con las reglas de negocio
Mensaje de error
500
No se pudo actualizar el objeto Specie
Mensaje de error
Elimina un objeto Specie.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Specie a eliminar
Sí
Integer
Código
Descripción
Cuerpo
204
Objeto eliminado
N/A
500
Error interno
Mensaje de error
GET species/{speciesid}/breeds
Retorna una colección de objetos Breed asociados a un objeto Specie en representación Detail.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Specie a consultar
Sí
Integer
Código
Descripción
Cuerpo
200
OK
Colección de objetos Breed en representación Detail
500
Error consultando breeds
Mensaje de error
GET species/{speciesid}/breeds/{breedsid}
Retorna un objeto Breed asociados a un objeto Specie en representación Detail.
Nombre
Ubicación
Descripción
Requerido
Esquema
speciesid
Path
ID del objeto Specie a consultar
Sí
Integer
breedsid
Path
ID del objeto Breed a consultar
Sí
Integer
Código
Descripción
Cuerpo
200
OK
Objeto Breed en representación Detail
404
No existe un objeto Breed con el ID solicitado asociado al objeto Specie indicado
Mensaje de error
500
Error interno
Mensaje de error
POST species/{speciesid}/breeds/{breedsid}
Asocia un objeto Breed a un objeto Specie.
Nombre
Ubicación
Descripción
Requerido
Esquema
speciesid
PathParam
ID del objeto Specie al cual se asociará el objeto Breed
Sí
Integer
breedsid
PathParam
ID del objeto Breed a asociar
Sí
Integer
PUT species/{speciesid}/breeds
Es el encargado de remplazar la colección de objetos Breed asociada a un objeto Specie.
Nombre
Ubicación
Descripción
Requerido
Esquema
speciesid
Path
ID del objeto Specie cuya colección será remplazada
Sí
Integer
body
body
Colección de objetos Breed
Sí
Representación Detail
Código
Descripción
Cuerpo
200
Se remplazó la colección
Colección de objetos Breed en Representación Detail
500
No se pudo remplazar la colección
Mensaje de error
DELETE species/{speciesid}/breeds/{breedsid}
Remueve un objeto Breed de la colección en un objeto Specie.
Nombre
Ubicación
Descripción
Requerido
Esquema
speciesid
Path
ID del objeto Specie asociado al objeto Breed
Sí
Integer
breedsid
Path
ID del objeto Breed a remover
Sí
Integer
Código
Descripción
Cuerpo
204
Objeto removido
N/A
500
Error interno
Mensaje de error
Volver arriba
El objeto Breed tiene 2 representaciones JSON:
{
id : '' /*Tipo Long*/ ,
name : '' /*Tipo String*/ ,
description : '' /*Tipo String*/ ,
mood : '' /*Tipo String*/ ,
size : '' /*Tipo String*/ ,
lifeExpectancy : '' /*Tipo Integer*/
}
{
// todo lo de la representación Minimum más los objetos Minimum con relación simple.
specie : {
id : '' /*Tipo Long*/ ,
name : '' /*Tipo String*/ }
}
Retorna una colección de objetos Breed en representación Detail.
Cada Breed en la colección tiene embebidos los siguientes objetos: Specie.
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 Breed en representación Detail.
Cada Breed en la colección tiene los siguientes objetos: Specie.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Breed a consultar
Sí
Integer
Código
Descripción
Cuerpo
200
OK
Objeto Breed en representaciones Detail
404
No existe un objeto Breed con el ID solicitado
Mensaje de error
500
Error interno
Mensaje de error
Es el encargado de crear objetos Breed.
Nombre
Ubicación
Descripción
Requerido
Esquema
body
body
Objeto Breed que será creado
Sí
Representación Detail
Código
Descripción
Cuerpo
201
El objeto Breed ha sido creado
Representación Detail
409
Un objeto relacionado no existe
Mensaje de error
500
No se pudo crear el objeto Breed
Mensaje de error
Es el encargado de actualizar objetos Breed.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Breed a actualizar
Sí
Integer
body
body
Objeto Breed nuevo
Sí
Representación Detail
Código
Descripción
Cuerpo
201
El objeto Breed actualizado
Representación Detail
412
business exception, no se cumple con las reglas de negocio
Mensaje de error
500
No se pudo actualizar el objeto Breed
Mensaje de error
Elimina un objeto Breed.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Breed a eliminar
Sí
Integer
Código
Descripción
Cuerpo
204
Objeto eliminado
N/A
500
Error interno
Mensaje de error
GET breeds/{breedsid}/animal
Retorna una colección de objetos Animal asociados a un objeto Breed en representación Detail.
Nombre
Ubicación
Descripción
Requerido
Esquema
id
Path
ID del objeto Breed a consultar
Sí
Integer
Código
Descripción
Cuerpo
200
OK
Colección de objetos Animal en representación Detail
500
Error consultando animal
Mensaje de error
GET breeds/{breedsid}/animal/{animalid}
Retorna un objeto Animal asociados a un objeto Breed en representación Detail.
Nombre
Ubicación
Descripción
Requerido
Esquema
breedsid
Path
ID del objeto Breed a consultar
Sí
Integer
animalid
Path
ID del objeto Animal a consultar
Sí
Integer
Código
Descripción
Cuerpo
200
OK
Objeto Animal en representación Detail
404
No existe un objeto Animal con el ID solicitado asociado al objeto Breed indicado
Mensaje de error
500
Error interno
Mensaje de error
POST breeds/{breedsid}/animal/{animalid}
Asocia un objeto Animal a un objeto Breed.
Nombre
Ubicación
Descripción
Requerido
Esquema
breedsid
PathParam
ID del objeto Breed al cual se asociará el objeto Animal
Sí
Integer
animalid
PathParam
ID del objeto Animal a asociar
Sí
Integer
PUT breeds/{breedsid}/animal
Es el encargado de remplazar la colección de objetos Animal asociada a un objeto Breed.
Nombre
Ubicación
Descripción
Requerido
Esquema
breedsid
Path
ID del objeto Breed cuya colección será remplazada
Sí
Integer
body
body
Colección de objetos Animal
Sí
Representación Detail
Código
Descripción
Cuerpo
200
Se remplazó la colección
Colección de objetos Animal en Representación Detail
500
No se pudo remplazar la colección
Mensaje de error
DELETE breeds/{breedsid}/animal/{animalid}
Remueve un objeto Animal de la colección en un objeto Breed.
Nombre
Ubicación
Descripción
Requerido
Esquema
breedsid
Path
ID del objeto Breed asociado al objeto Animal
Sí
Integer
animalid
Path
ID del objeto Animal a remover
Sí
Integer
Código
Descripción
Cuerpo
204
Objeto removido
N/A
500
Error interno
Mensaje de error
Volver arriba