Coder Social home page Coder Social logo

desafio-backend's Introduction

Desafio Backend

API de contatos

Permite cadastrar em um banco de dados contatos com as seguintes informações:

  • Id
  • Primeiro Nome
  • Último nome
  • Email
  • Telefones (realcionamento 1:n)

Para isso o banco de dados foi estruturado da seguinte forma:

demonstration

Tecnologias Utilizadas:

  • typescript
  • typeorm
  • express
  • mysql

Rodando a aplicação

  1. Faça clone do repositório e entre no novo diretório criado
git clone [email protected]:abelsouzacosta/csptecnologia-desafio-backend.git

cd csptecnologia-desafio-backend/

  1. Neste projeto foi usado o typeorm, para que seja possível fazer o uso de migrations é preciso ter o pacote ts-node instalado globalmente, se você não possuir este pacote instalado de forma global pode instalá-lo usando o comando:

npm -g install ts-node ou sudo npm -g install ts-node (caso em ambiente linux)

  1. Renomeie os arquivos .env.local e .ormconfig.env para .env e ormconfig.env, respectivamente;

  2. Dentro de .env determine a porta da aplicação (ex: 3030)

  3. Crie um banco de dados MYSQL com um nome qualquer de sua preferência (ex: CONTACTS)

  4. No arquivo ormconfig.env determine os valores das variáveis TYPEORM_USERNAME, TYPEORM_PASSWORD e TYPEORM_DATABASE com o usuário do banco de dados, a senha e o nome do banco de dados criado no passo anterior.

  5. Rode as migrations com o comando: yarn migration:run

  6. Inicialize a aplicação: yarn dev

Rotas

[GET]/contacts: Retorna todas as instâncias inseridas no banco de dados, se passada uma query parameter também é possível filtrar pelos nomes e pelo email, da seguinte forma:

contacts?firstName=value ou contacts?lastName=value ou contacts?email=value

[GET]/contacts/:id: Lista todos os detalhes de um único contato identificado pelo id passado no parametro da url

[POST]/contacts: A rota deve receber no corpo da requisição o primeiro nome, último nome, email e um array contendo oos números de telefone do contato, como podemos ver abaixo:

{
	"firstName": "Name",
	"lastName": "Surname",
	"email": "[email protected]",
	"phone_numbers": [
		"77777777777",
		"77777777778"
	]
}

[PUT]/contacts/:id: A atualiza as informações principais do contato: firstName, lastName e email. O id do contato deve ser passado por parametro da url, as demais informações devem ser passadas no corpo da requisição.

[DELETE]/contacts/:id: Remove a instância de contato com o id passado

[POST]/contacts/add_new_number_to_contact/:id: Permite adicionar um novo número de telefone ao contato identificado pelo id o corpo da requisição deve estar dessa forma:

{
	"number": "75992866624"
}

Abel Souza ©️

desafio-backend's People

Contributors

abelsouzacosta avatar

Watchers

 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.