Olá! Bem vindo ao Tech Challenge da Brasa!
Neste desafio, você está encarregado de criar (ou continuar) essa API básica. Você tem total liberdade para pesquisar como funciona qualquer coisa, seja uma biblioteca utilizada, ou até particularidades da linguagem JavaScript. Porém, insistimos que você se esforçe ao máximo e tente não copiar o código inteiro — o que mais importa é a sua tentativa, não o produto final, então tente comentar bastante o código com seus pensamentos e ideias.
Para começar o desafio, faça um fork publico deste repositório e, enquanto progride, faça commmits para que o time possa analizar seu progresso e linha de raciocínio.
A funcionalidade desejada desta api é um CRUD (Create, Update, Delete) básico para controlar duas tabelas, Person e Roles. Para formar um relacionamento (many to many) entre as duas tabelas, é criado uma terceira tabela, persons_roles.
Column | Type |
---|---|
id | int (auto-gerado) |
first_name | varchar (string) |
last_name | varchar (string) |
varchar (string) |
Column | Type |
---|---|
id | int (auto-gerado) |
name | varchar (string) |
Column | Type |
---|---|
person_id | int |
role_id | int |
- Método GET para listar todas entradas em Person.
- Método GET com parâmetros de busca pelo last_name para pesquisar em Person
- Método POST para inserir uma nova entrada em Person (first_name, last_name, email)
- Método PATCH para atualizar first_name e last_name usando o email
- Método DELETE para remover entradas em People utilizando email
- Método GET para listar todas entradas em Role.
- Método POST para inserir uma nova entrada em Role (name)
- Método DELETE para remover entradas em Role utilizando Name
- Método POST para vincular uma Person a uma Role
- Método GET para buscar todas Person com uma Role
- Método GET para buscar todos Roles de uma Person
- Método DELETE para remover uma Role de uma Person
Fique tranquilo que parece um monte de código, mas a grande maioria ou é simples ou é repetido. Você só precisa se preocupar com a lógica de cada endpoint.
Primeiramente, você deve ter o Node e o npm instalados, assim como um cliente para testar API's como o Insomnia ou o Postman. Após a instalação destes, rode o comando abaixo no repositório clonado.
$ npm install
$ npm start