Servicio que se implementan en el paso-5

En este paso se maneja una relación de muchos a muchos entre Book y Author: Un libro puede tener uno o muchos autores y un autor puede haber escrito muchos libros.

Las representación de los recursos book y author cambian para poder modelar la relación entre ellos. La relación la modelamos en los dos sentidos: un libro tiene asociado un conjunto de autores (al menos 1) y un autor tiene asociado un conjunto de libros (al menos uno).

La representación detallada de Book ahora incluye la colección de sus autores y la representación detallada de Author ahora incluye la colección de sus libros.

Representación básica de Author

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

Este es un ejemplo de un Author en representación básica.

{ "id" : 1, "name" : "Gabriel Garcia Marquez", "birthDate" : "23091935" }

Representación detallada

La representación detallada de Author incluye un listado de Book.

{ 'id' : '' /* Tipo Long */, 'name' : '' /* Tipo String */, 'birthDate' : '' /* Tipo Date */, 'books': [ { id: '' /*Tipo Long*/, name: '' /*Tipo String*/, isbn: '' /*Tipo String*/, description: '' /*Tipo String*/, image: '' /*Tipo String*/, publishingdate: '' /*Tipo Date*/ editorial: { id: '' /*Tipo Long*/, name: '' /*Tipo String*/ } } ] }

El siguiente es un ejemplo de una representación detallada de Author

{ "id" : 1, "name" : "Gabriel Garcia Marquez", "birthDate" : "23091935", "books" : [ { "id" : 1, "name" : "Cien años de soledad", "description": "El libro se compone de 20 capítulos no titulados, en los cuales se narra una historia con una estructura cíclica temporal, puesto que los acontecimientos del pueblo y de la familia Buendía, así como los nombres de los personajes, se repiten una y otra vez, fusionando la fantasía con la realidad.", "isbn" : "0307474720", "image" : "http://goo.gl/IWNdCX", "publishDate" : "01071967", "editorial": {"id" : 1, "name" : "Plaza y Janes"} }, { "id" : 2, "name" : "El coronel no tiene quien le escriba", "description" : "...", "isbn" : "0307474721", "image" : "http://goo.gl/IWNdCX", "publishDate" : "01071967", "editorial": {"id" : 1, "name" : "Plaza y Janes"} } ] }

Representación básica de Book

A la representación básica de book le hemos agregado la author. La hemos agregado aquí dado que solo hay un autor por libro.

{
id: '' /*Tipo Long*/,
name: '' /*Tipo String*/,
isbn: '' /*Tipo String*/,
image: '' /*Tipo String*/,
description: '' /*Tipo String*/,
publishingdate: '' /*Tipo Date*/,
editorial: '' /*Tipo Editorial*/
}

Ejemplo JSON de una representación Book

Representación detallada de Book

En este paso, la representación detalla de book es igual a la representación básica.

{
id: '' /*Tipo Long*/,
name: '' /*Tipo String*/,
isbn: '' /*Tipo String*/,
image: '' /*Tipo String*/,
description: '' /*Tipo String*/,
publishingdate: '' /*Tipo Date*/,
editorial: '' /*Tipo representación básica de Editorial*/
authors: [{
    'id' : '' /* Tipo Long */,
    'name' : '' /* Tipo String */,
    'birthDate' : '' /* Tipo Date */
}
 ] /*Tipo colección de reprentacion básicas de autor.*/

}

Servicios relacionados con la colección de libros de un autor authors/{authorid}

GET authors/{authorid}/books

Retorna la colección de objetos Book, en representación básica, asociados con un objeto Author con identificador authorid.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
authorid Path authorid del objeto author del cual se va consultar sus libros Integer
Respuesta
Código Descripción Cuerpo
200 OK Coleccion de objetos book en Representación detallada de book
404 No existe un objeto author con el authorid solicitado Mensaje de error

GET authors/{authorid}/books/{booksid}

Retorna el objeto Book con identificador booksid, en representación detallada, asociado con el objeto Author authorid.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
authorid Path authorid del objeto author del cual se va consultar sus libros Integer
booksid Path booksid del objeto book que se va a consultar Integer

Respuesta

Código Descripción Cuerpo
200 OK Objeto book en Representación detallada de book
404 No existe un objeto author con el authorid solicitado Mensaje de error
404 No existe un objeto book con el bookid asociado con un autor authorid Mensaje de error

POST authors/{authorid}/books/{booksid}

Agrega a la colección de libros de la author con identificador authorid un objeto Book con identificador booksid.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
authorid Path authorid del objeto author del cual se va a agregar un libro Integer
booksid Path booksid del objeto book que se va a agregar a la colección de libros de la author Integer

Respuesta

Código Descripción Cuerpo
200 OK Se agregó el libro a la colección
404 No existe un objeto author con el authorid solicitado Mensaje de error
404 No existe un objeto book con el bookid dado Mensaje de error

PUT authors/{authorid}/books

Remplaza la colección de objetos Book asociada con un objeto Author cuyo identificado es authorid.

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 en Representación detallada de book

Respuesta

Código Descripción Cuerpo
200 Se remplazó la colección Colección de objetos Book
404 No existe un objeto author con el authorid dado Mensaje de error
404 No existe alguno de los objetos book en la colección pasada por parámetro. 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
authorid Path authorid del objeto author del cual se va a borrar un libro Integer
booksid Path booksid del objeto book que se va a borrar de la colección de libros de la author Integer

Respuesta

Código Descripción Cuerpo
200 Objeto removido N/A
404 No existe un objeto author con el authorid solicitado Mensaje de error
404 No existe un objeto book con el bookid asociado con un autor authorid Mensaje de error

Servicios relacionados con la colección de autores de un librobooks/{bookid}

GET books/{bookid}/authors

Retorna la colección de objetos Author, en representación básica, asociados con un objeto Book con identificador bookid.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
bookid Path bookid del objeto book del cual se va consultar sus autores Integer
Respuesta
Código Descripción Cuerpo
200 OK Colección de objetos author en Representación detallada de author
404 No existe un objeto book con el bookid solicitado Mensaje de error

GET books/{bookid}/authors/{authorsid}

Retorna el objeto Author con identificador authorsid, en representación detallada, asociado con el objeto Book bookid.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
bookid Path bookid del objeto book del cual se va consultar sus autores Integer
authorsid Path authorsid del objeto author que se va a consultar Integer

Respuesta

Código Descripción Cuerpo
200 OK Objeto author en Representación detallada de author
404 No existe un objeto book con el bookid solicitado Mensaje de error
404 No existe un objeto author con el authorid asociado con un autor bookid Mensaje de error

POST books/{bookid}/authors/{authorsid}

Agrega a la colección de autores de la book con identificador bookid un objeto Author con identificador authorsid.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
bookid Path bookid del objeto book del cual se va a agregar un autorauthor Integer
authorsid Path authorsid del objeto author que se va a agregar a la colección de autores de la book Integer

Respuesta

Código Descripción Cuerpo
200 OK Se agregó el autorauthor a la colección
404 No existe un objeto book con el bookid solicitado Mensaje de error
404 No existe un objeto author con el authorid dado Mensaje de error

PUT books/{bookid}/authors

Remplaza la colección de objetos Author asociada con un objeto Book cuyo identificado es bookid.

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 en Representación detallada de author

Respuesta

Código Descripción Cuerpo
200 Se reemplazó la colección Colección de objetos Author
404 No existe un objeto book con el bookid dado Mensaje de error
404 No existe alguno de los objetos author en la colección pasada por parámetro. 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
bookid Path bookid del objeto book del cual se va a borrar un autor Integer
authorsid Path authorsid del objeto author que se va a borrar de la colección de autores de la book Integer

Respuesta

Código Descripción Cuerpo
200 Objeto removido N/A
404 No existe un objeto book con el bookid solicitado Mensaje de error
404 No existe un objeto author con el authorid asociado con un autor bookid Mensaje de error

results matching ""

    No results matching ""