API Rest com as informações do estoque de uma livraria.

Overview

📚 Bookstore API

Projeto de encerramento do módulo 4 da Resilia Educação. O objetivo é desenvolver uma API Rest com as informações do estoque de uma livraria.
Deploy disponível no Heroku, você pode acessá-lo aqui.


📘 Pré-requisitos


📖 Iniciando da aplicação

Rode os comandos a seguir no terminal ou PoweShell.

  • Clone o repositório:
git clone https://github.com/vanessacreis/Bookstore-API.git
  • Acesse a pasta:
cd BookstoreAPI
  • Instale os pacotes necessários:
npm install
  • Popule o banco de dados:
npm run populate
  • Inicie o servidor:
npm run start

Ao iniciar o projeto, o servidor será aberto em http://localhost:3000/, sendo 3000 a porta padrão. Caso necessário, a porta poderá ser alterada no arquivo server.js


📗 Rotas HTTP

GET /books

Lista todos os livros da base de dados. Exemplo da resposta esperada:

{
	"books": [
		{
			"ID_Books": 1,
			"Name": "O Sol é Para Todos",
			"Writer": "Harper Lee",
			"Publisher": "José Olympio",
			"Genre": "Ficção Histórica",
			"Language": "Português",
			"Pages": "350",
			"Year": "2015",
			"Price": "59.9"
		},
		{
			"ID_Books": 2,
			"Name": "A Menina que Roubava Livros",
			"Writer": "Markus Zusak",
			"Publisher": "Intrínseca",
			"Genre": "Ficção História",
			"Language": "Português",
			"Pages": "480",
			"Year": "2011",
			"Price": "49.99"
		},
    	],
	"count": 2,
	"error": false
}

GET /books/book/{id}

Retorna livro de acordo com o id. Campo {id} deverá ser substituído pelo id do livro escolhido. Exemplo da resposta esperada:

{
	"book": [
		{
			"ID_Books": 10,
			"Name": "Joyland",
			"Writer": "Stephen King",
			"Publisher": "Suma",
			"Genre": "Suspense",
			"Language": "Portugues",
			"Pages": "240",
			"Year": "2015",
			"Price": "25.99"
		}
	],
	"error": false
}

GET /books/price/{id}

Retorna preço do livro de acordo com o id. Campo {id} deverá ser substituído pelo id do livro escolhido. Exemplo da resposta esperada:

{
	"info": [
		{
			"Name": "Capitães da Areia",
			"Writer": "Jorge Amado",
			"Price": "40.84"
		}
	],
	"error": false
}

GET /books/writer/{Nome+Sobrenome}

Retorna todos os livros do autor escolhido. O nome e sobrenome do autor deverá ser inserido na url com um + ao invés do espaço. Exemplo da resposta esperada:

{
	"books": [
		{
			"ID_Books": 3,
			"Name": "Sob a Redoma",
			"Writer": "Stephen King",
			"Publisher": "Suma",
			"Genre": "Suspense",
			"Language": "Português",
			"Pages": "960",
			"Year": "2012",
			"Price": "64.9"
		},
		{
			"ID_Books": 10,
			"Name": "Joyland",
			"Writer": "Stephen King",
			"Publisher": "Suma",
			"Genre": "Suspense",
			"Language": "Portugues",
			"Pages": "240",
			"Year": "2015",
			"Price": "25.99"
		}
	],
	"count": 2,
	"error": false
}

POST /books

Insere um novo livro na base de dados. Campos name, writer, publisher e year são obrigatórios e não podem ser enviados vazios. Modelo do schema a ser utilizado no body.

{
	"name": "Claros Sinais de Loucura",
	"writer": "Karen Harrington",
	"publisher": "Intrínseca",
	"genre": "Ficção Jovem Adulto",
	"language": "Português",
	"pages": "256",
	"year": "2014",
	"price": "24,90"
}

Exemplo da resposta esperada:

{
	"message": "Book Claros Sinais de Loucura was registered successfully",
	"error": false
}

PUT /books/book/{id}

Atualiza um livro na base de dados. Campo {id} deverá ser substituído pelo id do livro a ser atualizado. Modelo do schema a ser utilizado no body:

{
	"name": "Mar Sem Estrelas",
	"writer": "Erin Morgenstern",
	"publisher": "Morro Branco",
	"genre": "Fantasia",
	"language": "Português",
	"year": "2021",
	"pages": "544",
	"price": "60.99"
}

Exemplo da resposta esperada:

{
	"message": "Book Mar Sem Estrelas was updated.",
	"error": false
}

DELETE /books/book/{id}

Deleta o livro escolhido da base de dados. Exemplo da resposta esperada:

{
	"message": "Book id: 8 was deleted.",
	"error": false
}

📕 Testes

Este projeto conta com um arquivo de testes para conferir o funcionamento das rotas da API. Para utilizá-lo, é necessário que o banco de dados esteja populado. Os testes podem ser rodados com o comando

npm run test

📔 Desenvolvido por

Vanessa Reis 📚

Estudante de Desenvolvimento Web Full Stack, historiadora e leitora.

Linkedin Badge

You might also like...

Uma Api dos 151 primeiros pokemons utilizando NodeJS, Typescript, Docker, MongoDB e Mongoose.

Uma Api dos 151 primeiros pokemons utilizando NodeJS, Typescript, Docker, MongoDB e Mongoose.

Pokedex API Tópicos Preview Sobre o Pokedex Api Tecnologias Instalação e uso Preview Clique aqui para ter acesso a um preview da Api. Sobre o Pokedex

Nov 27, 2022

Uma api para encurtador url com typescript e Clean architecture.

Lyck 🔗 🖇️ Esta e a parte de backend de um encurtador de link que estou a desevolver. tecnologias 🔧 🛠️ Express. Joi. Uuid. Module-alias. BcryptJs.

Jan 28, 2022

Uma aplicação pomodoro conectada com a API do Spotify, para tornar o seu estudo mais dinâmico. Topics Stars

Uma aplicação pomodoro conectada com a API do Spotify, para tornar o seu estudo mais dinâmico.  Topics Stars

Demo | Tecnologias | Iniciando | Projeto | Layout | Demo 🧪 Tecnologias Esse projeto foi feito com as seguintes tecnologias. NextJS Next Auth TypeScri

Aug 9, 2022

O projeto MKS Sistemas tem como objetivo o desenvolvimento de uma aplicação em React que utilize endpoint da API de produtos fornecida pela própria MKS Sistemas.

  O projeto MKS Sistemas tem como objetivo o desenvolvimento de uma aplicação em React que utilize endpoint da API de produtos fornecida pela própria MKS Sistemas.

MKS front-end Descrição O projeto MKS Sistemas tem como objetivo o desenvolvimento de uma aplicação em React que utilize endpoint da API de produtos f

Jul 21, 2022

Rest API untuk mengumpulkan jokes receh dan meme dari Indonesia

Candaan API 😁 Candaan API merupakan Rest API yang dibuat untuk mendapatkan beberapa jokes jokes receh dari Indonesia, semua data data yang ada di Can

Jan 3, 2023

Cotacao B3 - Website para mostrar a cotação da B3 consumindo API Rest da Alphavantage

Cotacao B3 - Website para mostrar a cotação da B3 consumindo API Rest da Alphavantage

PHP-MVC-ROTAS Estrutura inicial para projetos usando Rotas em Php PHP MVC (Design Pattern) 🇧🇷 / 🇺🇸 Version Estrutura inicial para iniciar projetos

Jan 8, 2022

converts nuggies to usd and usd to nuggies for a variety of restaurant chains. Also includes a rest api. Built using NextJS and TypeScript

Prices All prices are currently based on the 4-piece from the respective chain or the equivalent lowest amount of nuggies. Plan is to add multiple pri

Jan 14, 2022

A rest api which scrapes data from asianembed or asianload. Made using NodeJS, Express and Cheerio.

A rest api which scrapes data from asianembed or asianload. Made using NodeJS, Express and Cheerio.

Dec 6, 2022

Credence Analytics - REST- API - Assignment

Credence Analytics - REST- API - Assignment

Backend Assignment Position: Software Developer REST API Server ● You’ll need to create an API server with CRUD based routes using NodeJS/Python ● Using your API, users can Create, Read, Update or Delete data from the database

Nov 14, 2022
Owner
Vanessa Reis
Estudante de Desenvolvimento Web Full Stack
Vanessa Reis
Informações de todos os Agentes e Armas e Skins do Valorant

Bem vindo a Valorant Info Criei um painel que busca as informações dos Agentes(Informaçoes das habilidades e também um vídeo mostrando como e usada) T

Luiz Wanderson 28 Jul 29, 2022
This is a vanilla Node.js rest API created to show that it is possible to create a rest API using only vanilla Node.js

This is a vanilla Node.js rest API created to show that it is possible to create a rest API using only vanilla Node.js. But in most cases, I would recommend you to use something like Express in a production project for productivity purposes.

Eduardo Dantas 7 Jul 19, 2022
Projeto de uma API REST usando backend em Node.js

?? WIP - ToDo API - T17 - Resilia Projeto de educacional do curso de Web Dev Full Stack da Resilia Educação referente ao Módulo 04. Projeto realizado

Cinthia Miranda Cantu 14 Nov 30, 2022
Uma Intranet que permite um acesso restrito e promove a integração dos processos de uma empresa, facilitando o dia-a-dia dos seus colaboradores.

Intranet ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROJETO: DESENVOLVIMENTO WEB FRONT-END 1 SEMESTRE Uma Intranet que permite um acesso restrito e promove

Análise e Desenvolvimento de Sistemas - PUC Minas Virtual 5 Jun 1, 2022
Webb-tracker-api - James Webb Space Telescope (JWST) tracking REST API

James Webb Telescope tracking REST API Public REST API to track JWST's current status API data source: https://www.jwst.nasa.gov/content/webbLaunch/wh

Aslan Vatsaev 67 Nov 22, 2022
Lolis-rest - RESTful API for lolis-api

Lolis REST RESTful + Website for Lolis API. Introduction This is a RESTful API which will be used on Lolis API Website and Wrapper. This API uses Imgu

Waifu.sbs 3 Aug 11, 2022
A base API template for a REST API using express.

express-api-template A base API template for a REST API using express. Philosophy Setting up a new project can be a long and tedious process, especial

T3NED 6 May 29, 2022
An Amazon Kendra REST API CDK example with an API Gateway, including authentication with AWS Cognito and AWS X-Ray Tracing

Amazon Kendra Web Service CDK Sample Amazon Kendra has a robust JSON API for use with the AWS SDK (software development kit), but does not expose endp

AWS Samples 8 Nov 28, 2022
Atividade do Módulo 03 - Especialização em Front-end - Turma 01; Criação de uma API de Rick and Morty com React.js.

Screenshots Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you

Daniela 0 Dec 1, 2021
Projeto feito em conjunto de uma Pokedex com API própria

Tópicos Preview Sobre o Pekedex Tecnologias Instalação e uso Preview Clique aqui para ter acesso a um preview do App. Sobre o Pokedex O Pokedex é um d

Rafael França 3 Apr 25, 2022