É necessário criar uma .env no diretório desafio-fullstack-api. O valor de API_PORT
deve ser 8080
.
Após feito o clone do repositório, é necessário instalar as dependencias, execute o comando pnpm install
nos diretório de API e Web. Dentro da pasta "desafio-fullstack-api" confirme primeiro se a variavél POSTGRES_HOST
no arquivo .env está como localhost
. Os valores da .env devem ser:
API_PORT=8080
POSTGRES_HOST="localhost"
POSTGRES_PORT="5432"
POSTGRES_USER="admin"
POSTGRES_PASSWORD="admin"
POSTGRES_DB="desafiofullstack"
Então execute o comando docker compose up postgres
. Com o docker em execução, utilize o comando pnpm db:migrate
para executar as migrations, e após a execução, pnpm db:seed
opicionalmente para o caso de seed do BD. A execução do docker pode ser finalizada.
Após instalações das dependencias nos diretórios de API e Web, verifique se a variavel POSTGRES_HOST
está como postgres
, sendo assim, o network do docker pode se comunicar entre as aplicações.
POSTGRES_HOST="postgres"
Com isso feito, basta rodar o comando docker compose up
na raiz da aplicação, desafio-fullstack.
Para utilizar apenas o BD no docker é necessário alterar o valor da variavel POSTGRES_HOST
no arquivo .env para localhost
.
Knex.js como query builder.
- GET
/levels?page=1&limit=10
Retorna todos os níveis do BD, com o a estrutura.
{
id: number,
level: string
}
- POST
/levels
Retorna o nível que foi criado.
- PATCH
/levels/:id
Retorna o novo nível editado.
- DELETE
/levels/:id
Deleta o nível selecionado, se não houver desenvolvedores associados.
- GET
/levels/:id
Retorna o nível do ID correspondente.
- GET
/levels/:id/developers
Retorna todos os desenvolvedores associados aquele nível.
- GET
/developers?page=1&limit=10
Retorna todos os desenvolvedores do BD, com o a estrutura.
{
id: number,
name: string,
gender: string,
birthday: Date,
age: number,
hobby: string,
level: {
id: number,
level: string
}
}
- POST
/developers
Retorna o desenvolvedor que foi criado.
- PATCH
/developers/:id
Retorna o novo desenvolvedor editado.
- DELETE
/developers/:id
Deleta o desenvolvedor selecionado.
- GET
/developers/:id
Retorna o desenvolvedor do ID correspondente.
e SWR para o fetch de dados no client-side.