Uma API REST simples desenvolvida em Node.js e Express para gerenciamento e consulta de um catálogo de livros. O projeto demonstra conceitos fundamentais de back-end, incluindo roteamento, manipulação de parâmetros de busca (query params), filtragem, ordenação e paginação de dados.
- Node.js: Ambiente de execução JavaScript.
- Express: Framework web para construção da API.
- Postman: Para teste e documentação das rotas.
- Clone o repositório:
git clone https://github.com/NicoleGuirardelli/API_Livros.git
- Acesse a pasta do projeto.
cd API_Livros- Instale as dependências:
npm install npm install sqlite3
- Inicie o servidor:
aparece mensagem: O servidor estará rodando em http://localhost:3000
node index.js
A API utiliza SQLite para persistência de dados. O banco de dados é criado automaticamente ao iniciar o servidor, no arquivo: database.db
Não é necessário instalar nenhum sistema de banco de dados externo.
Abaixo estão todos os endpoints disponíveis, seus métodos, regras de negócio e exemplos.
| Método | Rota | Descrição |
|---|---|---|
| GET | /api/livros |
Lista os livros (com paginação, filtros e ordenação). |
| GET | /api/livros/:id |
Retorna um livro específico pelo ID. |
| POST | /api/livros |
Cria um novo livro no catálogo. |
| PUT | /api/livros/:id |
Atualiza um livro existente. |
| DELETE | /api/livros/:id |
Remove um livro do catálogo. |
Lista os livros. Aceita os seguintes query params: genero, ordem (titulo ou nota), direcao (asc ou desc), pagina, e limite.
- Body da Requisição: Nenhum.
- Resposta de Sucesso (200):
{
"dados": [ { "id": 1, "titulo": "Dom Casmurro", ... } ],
"paginacao": { "pagina_atual": 1, "itens_por_pagina": 5, "total": 10 }
}Busca os detalhes de um livro específico.
-
Resposta de Sucesso (200): Objeto JSON do livro correspondente.
-
Resposta de Erro (404): {"erro": "Livro não encontrado"}
Adiciona um novo livro ao sistema.
*Validações Implementadas:
Todos os campos são de preenchimento obrigatório.
Tipo de dado: ano e nota devem ser obrigatoriamente numéricos.
Regra de negócio: A nota deve estar entre 0 e 5.
- Body da Requisição (JSON):
{
"titulo": "O Alquimista",
"autor": "Paulo Coelho",
"ano": 1988,
"genero": "Ficção",
"nota": 4.1
}-
Resposta de Sucesso (201 Created): Retorna o objeto criado, incluindo o novo ID gerado automaticamente.
-
Resposta de Erro (400 Bad Request): Detalha a falha de validação. Ex: {"erro": "A nota deve ser um valor entre 0 e 5."}
Atualiza um livro existente.
-
Validações:
- Todos os campos obrigatórios
- Ano e nota devem ser numéricos
- Nota entre 0 e 5
-
Resposta de Sucesso (200): Retorna o livro atualizado.
-
Erro (404): Livro não encontrado
Remove um livro do sistema.
-
Resposta de Sucesso (204 No Content)
-
Erro (404): Livro não encontrado
No projeto encontrará o arquivo: Api Livros.postman_collection.json .
-
Abra o Postman.
-
Clique em Import no canto superior esquerdo.
-
Selecione o arquivo .json.
-
Uma coleção chamada "Api Livros" aparecerá na sua barra lateral com todas as requisições GET, POST, PUT e DELETE prontas para uso.



