Skip to content

Latest commit

 

History

History
195 lines (130 loc) · 7.42 KB

README.md

File metadata and controls

195 lines (130 loc) · 7.42 KB

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Coverage Discord Backers on Open Collective Sponsors on Open Collective Support us

Description

Api Clients

Api Clients é um projeto simples de cadastro de clientes com o objetivo de aprender e explorar o uso do NestJS. Para gerenciar o banco de dados, utilizei o Prisma como ORM, facilitando o acesso e manipulação dos dados de forma eficiente, e escolhi o PostgreSQL como banco de dados devido à sua robustez e confiabilidade. O NestJS foi a escolha como framework por sua estrutura modular e organizada, além de seu suporte ao TypeScript, o que contribui para um desenvolvimento mais seguro e escalável.

Este projeto foi criado para substituir um backend antigo que não estava atendendo às minhas necessidades e expectativas. Busquei melhorar a estrutura e a eficiência utilizando o NestJS como base do desenvolvimento, uma vez que ele oferece uma arquitetura organizada e escalável, ideal para criar APIs robustas. A motivação principal foi aprimorar o backend de forma mais moderna e eficaz, explorando a modularidade do NestJS e a segurança proporcionada pelo TypeScript. Assim, o projeto também me permitiu aprofundar o conhecimento dessas tecnologias e melhorar o desempenho da aplicação.

Tecnologias

  • Node.js
  • TypeScript
  • Nest
  • Prisma
  • Postgres

Rodando localmente

Clone o projeto

  git clone [email protected]:JhonatasAnicezio/api_clients.git

Entre no diretório do projeto

  cd api_clients

Instale as dependências

  npm install

Realize a construção do projeto

  npm run build

Inicie o servidor

  npm run start

Variáveis de Ambiente

Para rodar esse projeto, você vai precisar adicionar as seguintes variáveis de ambiente no seu .env

SECRET

Lembrando que você precisa de um banco Postgress para rodar a api

DATABASE_URL="postgresql://USER:PASSWORD@HOST:PORT/DATABASE?schema=SCHEMA"

Substitua os placeholders escritos em letras maiúsculas pelas credenciais do seu banco de dados. Observe que, se você não tiver certeza do que fornecer para o SCHEMAplaceholder, é mais provável que seja o valor padrão public:

Documentação da API

Retorna os dados do usuário de acordo com o token

  GET /clients/me

  header: {
    "authorization": "token",
  }
Parâmetro Tipo Descrição
authorization string Obrigatório. O token gerado pelo login ou register

Retorna um token referente ao usuário do login

  POST /authentication

  body: {
    "email": "[email protected]",
    "password": "secret_user"
  }
Parâmetro Tipo Descrição
email string Obrigatório. O email do seu usuário
password string Obrigatório. A senha do seu usuário

Realiza o cadastro de um novo usuário e em seguida retorna um token refente ao usuário do login

  POST /clients

  body: {
    "email": "[email protected]",
    "password": "mod100%feliz",
    "name": "Kageyama Mob",
    "role": "user"
  }
Parâmetro Tipo Descrição
email string Obrigatório. O email do seu usuário
password string Obrigatório. A senha do seu usuário
name string Obrigatório. O nome do seu usuário
role string Obrigatório. A role do seu usuário

Rotas restritas a usuarios que sejam admin

Nessas rotas é obrigatrio a realização do login por parte de um administrador

Retorna todos os usuarios

  GET /clients
Parâmetro Tipo Descrição
api_key string Obrigatório. A chave da sua API

Remove o um usuário de acordo com o seu id

  DELETE /clients/${id}
Parâmetro Tipo Descrição
id string Obrigatório. ID do usuário que deseja apagar

Atualiza a role de um usuário de acordo com seu id

  PUT /clients/${id}

  body: {
    "role": "admin"
  }
Parâmetro Tipo Descrição
id string Obrigatório. ID do usuário que deseja atualizar
body string Obrigatório. A nova role do usuário

Autor

License

Api Client is MIT licensed.