Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Documentação da API

NPM

API Bookshelf

Esta API é utilizada para gerenciar um catálogo de livros, permitindo operações de CRUD.

Create, Read, Update, Delete (Criar, Ler, Atualizar e Deletar)

Tecnologias utilizadas:

Editor

Estrutura do JSON da API

{
	"title": "Título do livro",
	"author": ["Autor do livro"],
	"yearPublication": "Ano de publicação do livro",
	"description": "Descrições adicionais sobre o livro"
	[
		{
			"edition": "Qual a edição do livro",
			"publisher": "Editora responsável pela publicação",
			"genre": ["Gênero do livro"],
			"type": "Tipo do livro (Ebook ou Físico)",
			"isbn": "International Standard Book Number - ISBN 13
					(Número Internacional Padrão de Livro)",
		}
	]
}

As chaves (keys) "author" e "genre" são arrays, para caso de multi valores precisarem ser inseridos.

ENDPOINTS

POST /book

Esse endpoint é responsável por cadastrar um novo livro no banco de dados.

Parâmetros:

  • title: String;
  • author: [String];
  • yearPublication: Number;
  • description:
    • edition: String;
    • publisher: String;
    • genre: [String];
    • type: String;
    • isbn: String;
Exemplo de requisição:
{
	"title": "Manifesto do partido comunista",
	"author": [
		"Marx, Karl",
		"Engels, Friedrich"
	],
	"yearPublication": 2000,
	"description": [
		{
			"edition": "2º Edição",
			"publisher": "Martin Claret",
			"genre": [
				"História",
				"Sociologia",
				"Filosofia"
			],
			"type": "Físico",
			"language": "Português",
			"isbn": "857-2324186"
		}
	]
}

Respostas:

Criado! 201
Caso essa resposta aconteça, o novo livro foi criado com sucesso.

Exemplo de resposta:
{
	"Success": "Manifesto do partido comunista' cadastrado com sucesso"
}

Erro Interno do Servidor! 500
Caso essa resposta aconteça, significa que ocorreu um erro interno no servidor.

Exemplo de resposta:
{
    "err": "Erro interno do servidor!"
}

GET /books

Esse endpoint é responsável por retornar a listagem de todos os livros cadastrados no banco de dados.

Parâmetros:

Nenhum

Respostas:

OK! 200
Caso essa resposta aconteça, você vai receber a listagem de todos os livros cadastrados.

Exemplo de resposta:
{
	"books": [
		{
			"_id": "66df3950b80e0864bebdccde",
			"title": "Fahrenheit 451",
			"author": [
				"Bradbury, Ray"
			],
			"yearPublication": 2012,
			"description": [
				{
					"edition": "1º Edição",
					"publisher": "Biblioteca Azul",
					"genre": [
						"Romance",
						"Ficção científica",
						"Ficção distópica",
						"Ficção Política"
					],
					"type": "Físico",
					"language": "Português",
					"isbn": "9788525052247",
					"_id": "66df3950b80e0864bebdccdf"
				}
			],
			"__v": 0
		},
		{
			"_id": "66df39e63194ac6032997422",
			"title": "Admirável Mundo Novo",
			"author": [
				"Huxley, Aldous"
			],
			"yearPublication": 2022,
			"description": [
				{
					"edition": "23º Edição",
					"publisher": "Biblioteca Azul",
					"genre": [
						"Romance",
						"Ficção científica",
						"Ficção distópica"
					],
					"type": "eBook",
					"language": "Português",
					"isbn": "B0BCX3Z8HB",
					"_id": "66df39e63194ac6032997423"
				}
			],
			"__v": 0
		},
		{
			"_id": "66df3bb7c5e3fe845488ea99",
			"title": "Manifesto do partido comunista",
			"author": [
				"Marx, Karl",
				"Engels, Friedrich"
			],
			"yearPublication": 2000,
			"description": [
				{
					"edition": "2º Edição",
					"publisher": "Martin Claret",
					"genre": [
						"História",
						"Sociologia",
						"Filosofia"
					],
					"type": "Físico",
					"language": "Português",
					"isbn": "8572324186",
					"_id": "66df3bb7c5e3fe845488ea9a"
				}
			],
			"__v": 0
		},
		{
			"_id": "66e1a4c9e905c92685320020",
			"title": "A Divina Comédia",
			"author": [
				"Alighieri, Dante"
			],
			"yearPublication": 2017,
			"description": [
				{
					"edition": "4º Edição",
					"publisher": "Editora 34",
					"genre": [
						"Poesia"
					],
					"type": "Físico",
					"language": "Português",
					"isbn": "978-8573261202",
					"_id": "66e1a4c9e905c92685320021"
				}
			],
			"__v": 0
		}
	]
}

Erro Interno do Servidor! 500
Caso essa resposta aconteça, significa que ocorreu um erro interno no servidor.

Motivos podem incluir falhas na comunicação com o banco de dados.

Exemplo de resposta:
{
    "err": "Erro interno do servidor!"
}

GET /book/ID

Esse endpoint é responsável por retornar as informações de um livro específico pelo seu ID.

Parâmetros:

  • ID do livro a ser solicitado.
Exemplo de requisição:
/book/66df3bb7c5e3fe845488ea99

Respostas:

OK! 200
Caso essa resposta aconteça, você vai receber as informações do livro solicitado.

Exemplo de resposta:
{
	"book": {
		"_id": "66df3bb7c5e3fe845488ea99",
		"title": "Manifesto do partido comunista",
		"author": [
			"Marx, Karl",
			"Engels, Friedrich"
		],
		"yearPublication": 2000,
		"description": [
			{
				"edition": "2º Edição",
				"publisher": "Martin Claret",
				"genre": [
					"História",
					"Sociologia",
					"Filosofia"
				],
				"type": "Físico",
				"language": "Português",
				"isbn": "857-2324186",
				"_id": "66df3bb7c5e3fe845488ea9a"
			}
		],
		"__v": 0
	}
}

Não Encontrado! 404
Caso essa resposta aconteça, significa que o livro com o ID fornecido não foi encontrado.

Exemplo de resposta:
{
    "err": "Livro não encontrado!"
}

Requisição Inválida! 400
Caso essa resposta aconteça, significa que o ID fornecido é inválido.

Exemplo de resposta:
{
    "err": "ID inválido!"
}

Erro Interno do Servidor! 500
Caso essa resposta aconteça, significa que ocorreu um erro interno no servidor.

Exemplo de resposta:
{
    "err": "Erro interno do servidor!"
}

PUT /book/id

Esse endpoint é responsável por atualizar as informações de um livro específico pelo seu ID.

Parâmetros:

  • ID;
  • Valor que será alterado.
Exemplo de requisição:
/book/66df3bb7c5e3fe845488ea99

{
	"title": "Manifesto do partido comunista",
		"author": [
			"Marx, Karl",
			"Engels, Friedrich"
		],
		"yearPublication": 2000,
		"description": [
			{
				"edition": "2º Edição",
				"publisher": "Martin Claret",
				"genre": [
					"História",
					"Sociologia",
					"Filosofia"
				],
				"type": "Físico",
				"language": "Português",
				"isbn": "8572324186" (Valor que será alterado)
		}
	]
}

"isbn": "857-2324186" (Valor original)

Respostas:

OK! 200
Caso essa resposta aconteça, as informações do livro foram atualizadas com sucesso.

Exemplo de resposta:
{
	"Success": "Livro 'Manifesto do partido comunista' atualizado com sucesso."
}

Requisição Inválida! 400
Caso essa resposta aconteça, significa que o ID fornecido é inválido ou a requisição contém dados malformados.

Exemplo de resposta:
{
    "err": "ID inválido ou dados malformados!"
}

Erro Interno do Servidor! 500
Caso essa resposta aconteça, significa que ocorreu um erro interno no servidor.

Exemplo de resposta:
{
    "err": "Erro interno do servidor!"
}

DELETE /book/id

Esse endpoint é responsável por deletar um livro específico pelo seu ID.

Parâmetros:

  • ID
Exemplo de requisição:
/book/66df3bb7c5e3fe845488ea99

Respostas:

Sem Conteúdo! 204
Caso essa resposta aconteça, o livro foi deletado com sucesso e não há conteúdo para retornar ao cliente.

Exemplo de resposta:
Nenhum conteúdo retornado.

Requisição Inválida! 400
Caso essa resposta aconteça, significa que o ID fornecido é inválido.

Exemplo de resposta:
{
    "err": "ID inválido!"
}

Erro Interno do Servidor! 500
Caso essa resposta aconteça, significa que ocorreu um erro interno no servidor.

Exemplo de resposta:
{
    "err": "Erro interno do servidor!"
}

About

API utilizada para gerenciar um catálogo de livros.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages