Skip to content

JessileyOliveira/Bexs-backend

Repository files navigation

Bexs Perguntas e Respostas - Backend

API para controle de perguntas e respostas

Instalação

Você deverá ter em sua máquina os seguinte itens:

  1. Faça um Fork ou clone este repositório.

  2. Instale as dependências do projeto:

    npm install

    ou se você usa yarn:

    yarn
  3. Crie um arquivo .env no diretório raiz, utilize o arquivo .env-example como padrão.

  4. Tenha o Postgres rodando em sua máquina com um database com nome bexs (caso queira outro nome altere o arquivo .env) — ou execute o Docker Compose (neste caso o database bexs será criado automaticamente):

    docker-compose up

    Será executado o Postgres em sua máquina virtual docker na porta 5432, isso pode ser alterado no arquivo docker-compose.yml.

  5. Execute npx sequelize db:migrate (ou se você usa yarn yarn sequelize db:migrate) para gerar as tabelas no database.

Execução

Para início da aplicação, execute:

Desenvolvimento(com nodemon):

npm run dev

ou se você usa yarn:

yarn dev

Produção:

npm run start

ou se você usa yarn:

yarn start

Isso iniciará o servidor com base nos dados informados no arquivo .env, caso tenha seguido o exemplo iniciará em localhost:3333

Testes

Os testes estão localizados na pasta __tests__.

Use o comando abaixo para executar os testes:

npm test

ou se você usa yarn:

yarn test

OBS:. A execução dos testes executa o script sequelize db:migrate, criando as tabelas no database

OBS2:. A execução dos testes efetua a limpeza das tabelas ao final dos testes

Endpoints

OBS:. O projeto contêm os arquivos insomnia.json e bens.postman, para o uso das API's no Insomnia e no Postman respectivamente.

Perguntas

GET: /questions?page=<NUMERO_DA_PAGINA>&perPage=<QUANTIDADE_POR_PAGINA>

OBS:. O parâmetro page e o parâmetro perPage são opcionais. Caso os mesmos não sejam fornecidos, serão utilizados os valores 1 e 10 respectivamente`

Ação: Retorna uma lista de perguntas.

POST: /questions

{
  "user": "Jessiley Oliveira",
  "text": "Isso é uma pergunta?"
}

Ação: Cadastra uma nova pergunta.

GET: /questions/<ID_PERGUNTA>?page=<NUMERO_DA_PAGINA>&perPage=<QUANTIDADE_POR_PAGINA>

OBS:. O parâmetro page e o parâmetro perPage são opcionais. Caso os mesmos não sejam fornecidos, serão utilizados os valores 1 e 10 respectivamente`

OBS2:. A paginação é feita nas respostas que a pergunta contém`

Ação: Retorna uma pergunta (e suas respostas) com base no ID

Respostas

POST: /questions/<ID_PERGUNTA>/answers

{
  "user": "Jessiley Oliveira",
  "text": "Isso é uma resposta."
}

Ação: Cadastra uma nova resposta.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published