A progressive Node.js framework for building efficient and scalable server-side applications.
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.
- Node.js
- TypeScript
- Nest
- Prisma
- Postgres
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
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:
GET /clients/me
header: {
"authorization": "token",
}
Parâmetro | Tipo | Descrição |
---|---|---|
authorization |
string |
Obrigatório. O token gerado pelo login ou register |
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 |
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 |
Nessas rotas é obrigatrio a realização do login por parte de um administrador
GET /clients
Parâmetro | Tipo | Descrição |
---|---|---|
api_key |
string |
Obrigatório. A chave da sua API |
DELETE /clients/${id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. ID do usuário que deseja apagar |
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 |
- Portifolio - jhonatas-anicezio
- GitHub - github/JhonatasAnicezio
- Linkedin - @jhonatasanicezio
Api Client is MIT licensed.