Coder Social home page Coder Social logo

rest-api-node-express's Introduction

1200px-star_wars2 svg

REST API em Node.js e Express.js - Cadastro e manipulação de planetas Star Wars em API SWAPI

Nesta aplicação foram implementadas as seguintes fucionalidades: adicionar planetas, listar planetas, buscar por nome e Id, remover planeta. Foi feito em Node usando a arquitetura REST, consome a API Swapi, o qual neste caso consultou-se apenas o número de aparições em filmes de cada planeta existente no universo Star Wars, caso o planeta não exista neste universo será cadastrado com zero aparições

Tecnologias Utilizadas

  • Node.js 10.13.0

  • Postman 6.5.2

  • MongoDB 4.0.4

Dependências

  • Express 4.16.4

  • Mongoose 5.3.12

  • Body-Parser 1.18.3

  • Nodemon (não é pré-requisito, mas facilita o uso)

Guia

  1. É necessário clonar o repositório com o comando git clone https://github.com/brunoalvaress/b2wdigital-testebackend-bruno.git
  2. Entrar no diretório do projeto com cd b2wdigital-testebackend-bruno (para windows)
  3. Instalar todas as dependências utilizando npm install dependencies
  4. Recomendo instalar o nodemon, utilizando npm install nodemon
  5. Após isso rodar a aplicação utilizando nodemon src/index.js

Arquitetura REST

A seguir está uma configuração genérica de local host na porta 3000:

  • Listagem de planetas - GET: http://localhost:3000/b2w/planetas/

    . Em caso de sucesso retorna todos os planetas já cadastrados no banco de dados, cada planeta no formato JSON, contendo nome, clima, terreno e número de aparições.

  • Adicionar planeta - POST: http://localhost:3000/b2w/planetas/adicionar

    . Adiciona um planeta ao banco de dados, sendo necessário inserir o nome, clima e terreno. O Id é gerado automaticamente, e o número de aparições também é gerado consumindo os dados da API Swapi. Caso o planeta não esteja contido no universo Star Wars, ele será cadastrado como tendo 0 aparições.

  • Buscar planeta por Id - GET: http://localhost:3000/b2w/planetas/id/{inserir-id-aqui}

    . Utiliza o Id gerado automaticamente quando o planeta é adicionado ao banco de dados. Retorna o arquivo no formato JSON com sucesso caso exista. Para essa busca é necessário inserir o Id após /id/.

  • Buscar planeta por Nome - GET: http://localhost:3000/b2w/planetas/nome/{inserir-nome-aqui}

    . Utiliza o nome do planeta cadastrado, segue a mesma metodologia da busca pelo Id. Para essa busca é necessário inserir o Nome após /nome/.

  • Deletar um planeta por Id - DELETE: http://localhost:3000/b2w/planetas/id/deletar/{inserir-id-aqui}

    . Remove o planeta utilizando o Id que foi gerado automaticamente, utilizando o método DELETE.

Testes

Foram totalmente realizados no ambiente automatizado do Postman, onde foi criado uma collection com 5 testes, comprovando o sucesso de cada funcionalidade. Os testes que foram feitos nesse caso podem ser vistos na figura abaixo, logo na aba a esquerda. O Postman é uma ferramenta extremamente útil para se testar manualmente ou automatizar os testes de qualquer API REST.

testes

Créditos

Essa API foi desenvolvida e documentada por Bruno Alvares de Miranda, no dia 15/11/2018.

rest-api-node-express's People

Contributors

brunoalvaress avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.