Servicios que se implementan en el paso-3

Las representación de los recursos book y editorial cambian para poder modelar la relación entre ellos. La relación la modelamos en los dos sentidos: un libro tiene asociada una editorial y una editorial tiene asociado un conjunto de libros.

Representación básica de Editorial

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

La representación detallada de editorial contiene ahora la colección de los libros en su representación básica.

Representación detallada de Editorial

{
id: '' /*Tipo Long*/,
name: '' /*Tipo String*/,
books: '' /*Tipo Colección de representaciones básicas de Book*/
}

Ejemplo Representación detallada de Editorial

{ "id" : 1, "name" : "Plaza y Janes", "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 editorial. La hemos agregado aquí dado que solo hay una editorial por libro.

{
id: '' /*Tipo Long*/,
name: '' /*Tipo String*/,
isbn: '' /*Tipo String*/,
image: '' /*Tipo String*/,
description: '' /*Tipo String*/,
publishingdate: '' /*Tipo Date*/,
editorial: '' /*Tipo representacion básica de Editorial*/
}

Ejemplo JSON de una representación Book

{ "id": 123, "description": "Jorge Fondebrider traza un mundo fantástico con mapas de la geografía real y de sus mitologías, observando a los hombres lobo que han vivido en la imaginación de Europa y América.", "image": "https://static.iris.net.co/arcadia/upload/images/2017/7/31/64899_1.jpg", "isbn": "930330149-8", "name": "Historia de los hombres lobo", "publishingdate": "2000-08-20T00:00:00-05:00", "editorial": { "id": 100, "name": "Oveja Negra" } }

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 representacion básica de Editorial*/
}

Servicios relacionados con la colección de libros de una editorial editorials/{editorialid}

GET editorials/{editorialid}/books

Retorna una colección de objetos Book,en representación básica, asociados con un objeto Editorial.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
editorialid Path editorialid del objeto editorial 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 editorial con el editorialid solicitado Mensaje de error

GET editorials/{editorialid}/books/{booksid}

Retorna el objeto Book con identificador booksid, en representación detallada, asociado con el objeto Editorial editorialid.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
editorialid Path editorialid del objeto editorial 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 editorial con el editorialid solicitado Mensaje de error
404 No existe un objeto book con el bookid asociado con una editorial editorialid Mensaje de error

POST editorials/{editorialid}/books/{booksid}

Agrega a la colección de libros de la editorial con identificador editorialid un objeto Book con identificador booksid.

Parámetros

Nombre Ubicación Descripción Requerido Esquema
editorialid Path editorialid del objeto editorial 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 editorial Integer

Respuesta

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

PUT editorials/{editorialid}/books

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

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 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 editorial con el editorialid dado Mensaje de error
404 No existe alguno de los objetos book en la colección pasada por parámetro. 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
editorialid Path editorialid del objeto editorial 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 editorial Integer

Respuesta

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

Servicios para el recurso Book son:

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

GET /books/{id}

Retorna una colección de objetos 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 Objeto Book en Representación detallada de book
404 No existe un objeto Book con el ID solicitado 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

Respuesta

Código Descripción Cuerpo
200 El objeto Book ha sido creado

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

Respuesta

Código Descripción Cuerpo
201 El objeto Book actualizado
404 No existe un Book con el id dado 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
404 No existe un Book con el id dado Mensaje de error

results matching ""

    No results matching ""